@azure/communication-react 1.22.0-alpha-202411210017 → 1.22.0-alpha-202411260017

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 (65) hide show
  1. package/dist/communication-react.d.ts +26 -1
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-Dw8hzKEb.js → ChatMessageComponentAsRichTextEditBox-CIhjlFQw.js} +19 -14
  3. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-CIhjlFQw.js.map +1 -0
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-De-8bhRs.js → RichTextSendBoxWrapper-BbQi9RvO.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-De-8bhRs.js.map → RichTextSendBoxWrapper-BbQi9RvO.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-DVP3RFKN.js → index-Ckf4Ubbj.js} +561 -414
  7. package/dist/dist-cjs/communication-react/index-Ckf4Ubbj.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/localizationUtils.js +4 -1
  10. package/dist/dist-esm/acs-ui-common/src/localizationUtils.js.map +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  13. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +0 -4
  14. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  15. package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js +6 -5
  16. package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js.map +1 -1
  17. package/dist/dist-esm/react-components/src/components/CameraButton.js +12 -5
  18. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  19. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js +1 -1
  20. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
  21. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +17 -12
  22. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  23. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js +1 -1
  24. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
  25. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js +37 -26
  26. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js.map +1 -1
  27. package/dist/dist-esm/react-components/src/components/Notification.d.ts +10 -0
  28. package/dist/dist-esm/react-components/src/components/Notification.js +2 -1
  29. package/dist/dist-esm/react-components/src/components/Notification.js.map +1 -1
  30. package/dist/dist-esm/react-components/src/components/NotificationStack.d.ts +5 -0
  31. package/dist/dist-esm/react-components/src/components/NotificationStack.js +1 -1
  32. package/dist/dist-esm/react-components/src/components/NotificationStack.js.map +1 -1
  33. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts +8 -0
  34. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +14 -10
  35. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  36. package/dist/dist-esm/react-components/src/components/ParticipantList.js +17 -2
  37. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  38. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +2 -2
  39. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  40. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +3 -3
  41. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  42. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +3 -0
  43. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
  44. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  45. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +12 -3
  46. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  47. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.d.ts +3 -0
  48. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +6 -3
  49. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  50. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +25 -10
  51. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  52. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +1 -1
  53. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  54. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.d.ts +1 -1
  55. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  56. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +1 -1
  57. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  58. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +1 -1
  59. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  60. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +2 -2
  61. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  62. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -0
  63. package/package.json +1 -1
  64. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-Dw8hzKEb.js.map +0 -1
  65. package/dist/dist-cjs/communication-react/index-DVP3RFKN.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.22.0-alpha-202411210017';
191
+ var telemetryVersion = '1.22.0-alpha-202411260017';
192
192
 
193
193
 
194
194
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -276,7 +276,10 @@ const _formatString = (str, vars) => {
276
276
  }
277
277
  // regex to search for the pattern "\{\}"
278
278
  const placeholdersRegex = /{(\w+)}/g;
279
- return str.replace(placeholdersRegex, (_, k) => vars[k] || `{${k}}`);
279
+ return str.replace(placeholdersRegex, (_, k) => {
280
+ const replaceValue = vars[k];
281
+ return replaceValue === undefined ? `{${k}}` : replaceValue;
282
+ });
280
283
  };
281
284
 
282
285
  // Copyright (c) Microsoft Corporation.
@@ -615,7 +618,7 @@ const getAssignedBreakoutRoom$1 = (state, props) => {
615
618
 
616
619
  // Copyright (c) Microsoft Corporation.
617
620
  // Licensed under the MIT License.
618
- var __awaiter$11 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
621
+ var __awaiter$12 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
619
622
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
620
623
  return new (P || (P = Promise))(function (resolve, reject) {
621
624
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -655,7 +658,7 @@ const _isPreviewOn = (deviceManager) => {
655
658
  *
656
659
  * @private
657
660
  */
658
- const disposeAllLocalPreviewViews = (callClient) => __awaiter$11(void 0, void 0, void 0, function* () {
661
+ const disposeAllLocalPreviewViews = (callClient) => __awaiter$12(void 0, void 0, void 0, function* () {
659
662
  const unparentedViews = callClient.getState().deviceManager.unparentedViews;
660
663
  for (const view of unparentedViews) {
661
664
  yield callClient.disposeView(undefined, undefined, view);
@@ -731,7 +734,7 @@ const maskDisplayNameWithRole = (displayName, localUserRole, participantRole, is
731
734
  * Helper to create a local video stream from the selected camera.
732
735
  * @private
733
736
  */
734
- const createLocalVideoStream = (callClient) => __awaiter$11(void 0, void 0, void 0, function* () {
737
+ const createLocalVideoStream = (callClient) => __awaiter$12(void 0, void 0, void 0, function* () {
735
738
  const camera = yield (callClient === null || callClient === void 0 ? void 0 : callClient.getState().deviceManager.selectedCamera);
736
739
  if (camera) {
737
740
  return new communicationCalling.LocalVideoStream(camera);
@@ -866,7 +869,7 @@ const holdButtonSelector = reselect__namespace.createSelector([getCallState], (c
866
869
 
867
870
  // Copyright (c) Microsoft Corporation.
868
871
  // Licensed under the MIT License.
869
- var __awaiter$10 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
872
+ var __awaiter$11 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
870
873
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
871
874
  return new (P || (P = Promise))(function (resolve, reject) {
872
875
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -887,7 +890,7 @@ const areStreamsEqual = (prevStream, newStream) => {
887
890
  * @private
888
891
  */
889
892
  const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager, call, options) => {
890
- const onStartLocalVideo = () => __awaiter$10(void 0, void 0, void 0, function* () {
893
+ const onStartLocalVideo = () => __awaiter$11(void 0, void 0, void 0, function* () {
891
894
  // Before the call object creates a stream, dispose of any local preview streams.
892
895
  // @TODO: is there any way to parent the unparented view to the call object instead
893
896
  // of disposing and creating a new stream?
@@ -907,7 +910,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
907
910
  yield call.startVideo(stream);
908
911
  }
909
912
  });
910
- const onStopLocalVideo = (stream) => __awaiter$10(void 0, void 0, void 0, function* () {
913
+ const onStopLocalVideo = (stream) => __awaiter$11(void 0, void 0, void 0, function* () {
911
914
  const callId = call === null || call === void 0 ? void 0 : call.id;
912
915
  if (!callId) {
913
916
  return;
@@ -916,7 +919,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
916
919
  yield call.stopVideo(stream);
917
920
  }
918
921
  });
919
- const onToggleCamera = (options) => __awaiter$10(void 0, void 0, void 0, function* () {
922
+ const onToggleCamera = (options) => __awaiter$11(void 0, void 0, void 0, function* () {
920
923
  const previewOn = _isPreviewOn(callClient.getState().deviceManager);
921
924
  // the disposal of the unparented views is to workaround: https://skype.visualstudio.com/SPOOL/_workitems/edit/3030558.
922
925
  // The root cause of the issue is caused by never transitioning the unparented view to the
@@ -973,19 +976,19 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
973
976
  }
974
977
  }
975
978
  });
976
- const onSelectMicrophone = (device) => __awaiter$10(void 0, void 0, void 0, function* () {
979
+ const onSelectMicrophone = (device) => __awaiter$11(void 0, void 0, void 0, function* () {
977
980
  if (!deviceManager) {
978
981
  return;
979
982
  }
980
983
  return deviceManager.selectMicrophone(device);
981
984
  });
982
- const onSelectSpeaker = (device) => __awaiter$10(void 0, void 0, void 0, function* () {
985
+ const onSelectSpeaker = (device) => __awaiter$11(void 0, void 0, void 0, function* () {
983
986
  if (!deviceManager) {
984
987
  return;
985
988
  }
986
989
  return deviceManager.selectSpeaker(device);
987
990
  });
988
- const onSelectCamera = (device, options) => __awaiter$10(void 0, void 0, void 0, function* () {
991
+ const onSelectCamera = (device, options) => __awaiter$11(void 0, void 0, void 0, function* () {
989
992
  if (!deviceManager) {
990
993
  return;
991
994
  }
@@ -1015,9 +1018,9 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1015
1018
  }, options);
1016
1019
  }
1017
1020
  });
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
+ const onRaiseHand = () => __awaiter$11(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()); });
1022
+ const onLowerHand = () => __awaiter$11(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()); });
1023
+ const onToggleRaiseHand = () => __awaiter$11(void 0, void 0, void 0, function* () {
1021
1024
  const raiseHandFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.RaiseHand);
1022
1025
  const localUserId = callClient.getState().userId;
1023
1026
  const isLocalRaisedHand = raiseHandFeature === null || raiseHandFeature === void 0 ? void 0 : raiseHandFeature.getRaisedHands().find((publishedState) => toFlatCommunicationIdentifier(publishedState.identifier) === toFlatCommunicationIdentifier(localUserId));
@@ -1028,7 +1031,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1028
1031
  yield (raiseHandFeature === null || raiseHandFeature === void 0 ? void 0 : raiseHandFeature.raiseHand());
1029
1032
  }
1030
1033
  });
1031
- const onReactionClick = (reaction) => __awaiter$10(void 0, void 0, void 0, function* () {
1034
+ const onReactionClick = (reaction) => __awaiter$11(void 0, void 0, void 0, function* () {
1032
1035
  var _c;
1033
1036
  if (reaction === 'like' ||
1034
1037
  reaction === 'applause' ||
@@ -1042,18 +1045,18 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1042
1045
  }
1043
1046
  return;
1044
1047
  });
1045
- const onToggleMicrophone = () => __awaiter$10(void 0, void 0, void 0, function* () {
1048
+ const onToggleMicrophone = () => __awaiter$11(void 0, void 0, void 0, function* () {
1046
1049
  if (!call || !(_isInCall(call.state) || _isInLobbyOrConnecting(call.state))) {
1047
1050
  throw new Error(`Please invoke onToggleMicrophone after call is started`);
1048
1051
  }
1049
1052
  return call.isMuted ? yield call.unmute() : yield call.mute();
1050
1053
  });
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 }) {
1054
+ const onStartScreenShare = () => __awaiter$11(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.startScreenSharing()); });
1055
+ const onStopScreenShare = () => __awaiter$11(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.stopScreenSharing()); });
1056
+ const onToggleScreenShare = () => __awaiter$11(void 0, void 0, void 0, function* () { return (call === null || call === void 0 ? void 0 : call.isScreenSharingOn) ? yield onStopScreenShare() : yield onStartScreenShare(); });
1057
+ const onHangUp = (forEveryone) => __awaiter$11(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.hangUp({ forEveryone: forEveryone === true ? true : false })); });
1058
+ const onToggleHold = () => __awaiter$11(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()); });
1059
+ const onCreateLocalStreamView = (...args_1) => __awaiter$11(void 0, [...args_1], void 0, function* (options = { scalingMode: 'Crop', isMirrored: true }) {
1057
1060
  if (!call || call.localVideoStreams.length === 0) {
1058
1061
  return;
1059
1062
  }
@@ -1077,7 +1080,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1077
1080
  }
1078
1081
  return (createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view) ? { view: createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view } : undefined;
1079
1082
  });
1080
- const onCreateRemoteStreamView = (userId_1, ...args_2) => __awaiter$10(void 0, [userId_1, ...args_2], void 0, function* (userId, options = { scalingMode: 'Crop' }) {
1083
+ const onCreateRemoteStreamView = (userId_1, ...args_2) => __awaiter$11(void 0, [userId_1, ...args_2], void 0, function* (userId, options = { scalingMode: 'Crop' }) {
1081
1084
  if (!call) {
1082
1085
  return;
1083
1086
  }
@@ -1114,7 +1117,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1114
1117
  }
1115
1118
  return (createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view) ? { view: createViewResult === null || createViewResult === void 0 ? void 0 : createViewResult.view } : undefined;
1116
1119
  });
1117
- const onDisposeRemoteStreamView = (userId) => __awaiter$10(void 0, void 0, void 0, function* () {
1120
+ const onDisposeRemoteStreamView = (userId) => __awaiter$11(void 0, void 0, void 0, function* () {
1118
1121
  if (!call) {
1119
1122
  return;
1120
1123
  }
@@ -1135,7 +1138,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1135
1138
  callClient.disposeView(call.id, participant.identifier, screenShareStream);
1136
1139
  }
1137
1140
  });
1138
- const onDisposeRemoteVideoStreamView = (userId) => __awaiter$10(void 0, void 0, void 0, function* () {
1141
+ const onDisposeRemoteVideoStreamView = (userId) => __awaiter$11(void 0, void 0, void 0, function* () {
1139
1142
  if (!call) {
1140
1143
  return;
1141
1144
  }
@@ -1154,7 +1157,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1154
1157
  }
1155
1158
  }
1156
1159
  });
1157
- const onDisposeRemoteScreenShareStreamView = (userId) => __awaiter$10(void 0, void 0, void 0, function* () {
1160
+ const onDisposeRemoteScreenShareStreamView = (userId) => __awaiter$11(void 0, void 0, void 0, function* () {
1158
1161
  if (!call) {
1159
1162
  return;
1160
1163
  }
@@ -1173,7 +1176,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1173
1176
  }
1174
1177
  }
1175
1178
  });
1176
- const onDisposeLocalScreenShareStreamView = () => __awaiter$10(void 0, void 0, void 0, function* () {
1179
+ const onDisposeLocalScreenShareStreamView = () => __awaiter$11(void 0, void 0, void 0, function* () {
1177
1180
  if (!call) {
1178
1181
  return;
1179
1182
  }
@@ -1186,7 +1189,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1186
1189
  callClient.disposeView(call.id, undefined, screenShareStream);
1187
1190
  }
1188
1191
  });
1189
- const onDisposeLocalStreamView = () => __awaiter$10(void 0, void 0, void 0, function* () {
1192
+ const onDisposeLocalStreamView = () => __awaiter$11(void 0, void 0, void 0, function* () {
1190
1193
  // If the user is currently in a call, dispose of the local stream view attached to that call.
1191
1194
  const callState = call && callClient.getState().calls[call.id];
1192
1195
  const localStream = callState === null || callState === void 0 ? void 0 : callState.localVideoStreams.find((item) => item.mediaStreamType === 'Video');
@@ -1198,17 +1201,17 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1198
1201
  // TODO: we need to remember which LocalVideoStream was used for LocalPreview and dispose that one.
1199
1202
  yield disposeAllLocalPreviewViews(callClient);
1200
1203
  });
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)); });
1204
+ const onSendDtmfTone = (dtmfTone) => __awaiter$11(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.sendDtmf(dtmfTone)); });
1202
1205
  const notImplemented = () => {
1203
1206
  throw new Error('Not implemented, cannot call a method from an abstract object');
1204
1207
  };
1205
1208
  /* @conditional-compile-remove(call-readiness) */
1206
- const askDevicePermission = (constrain) => __awaiter$10(void 0, void 0, void 0, function* () {
1209
+ const askDevicePermission = (constrain) => __awaiter$11(void 0, void 0, void 0, function* () {
1207
1210
  if (deviceManager) {
1208
1211
  yield (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.askDevicePermission(constrain));
1209
1212
  }
1210
1213
  });
1211
- const onRemoveVideoBackgroundEffects = () => __awaiter$10(void 0, void 0, void 0, function* () {
1214
+ const onRemoveVideoBackgroundEffects = () => __awaiter$11(void 0, void 0, void 0, function* () {
1212
1215
  const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
1213
1216
  (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
1214
1217
  if (stream) {
@@ -1220,7 +1223,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1220
1223
  }
1221
1224
  }
1222
1225
  });
1223
- const onBlurVideoBackground = (backgroundBlurConfig) => __awaiter$10(void 0, void 0, void 0, function* () {
1226
+ const onBlurVideoBackground = (backgroundBlurConfig) => __awaiter$11(void 0, void 0, void 0, function* () {
1224
1227
  var _d;
1225
1228
  const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
1226
1229
  (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
@@ -1233,7 +1236,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1233
1236
  return createEffect && stream.feature(communicationCalling.Features.VideoEffects).startEffects(createEffect(backgroundBlurConfig));
1234
1237
  }
1235
1238
  });
1236
- const onReplaceVideoBackground = (backgroundReplacementConfig) => __awaiter$10(void 0, void 0, void 0, function* () {
1239
+ const onReplaceVideoBackground = (backgroundReplacementConfig) => __awaiter$11(void 0, void 0, void 0, function* () {
1237
1240
  var _e;
1238
1241
  const stream = (call === null || call === void 0 ? void 0 : call.localVideoStreams.find((stream) => stream.mediaStreamType === 'Video')) ||
1239
1242
  (deviceManager === null || deviceManager === void 0 ? void 0 : deviceManager.getUnparentedVideoStreams().find((stream) => stream.mediaStreamType === 'Video'));
@@ -1246,7 +1249,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1246
1249
  return (createEffect && stream.feature(communicationCalling.Features.VideoEffects).startEffects(createEffect(backgroundReplacementConfig)));
1247
1250
  }
1248
1251
  });
1249
- const onStartNoiseSuppressionEffect = () => __awaiter$10(void 0, void 0, void 0, function* () {
1252
+ const onStartNoiseSuppressionEffect = () => __awaiter$11(void 0, void 0, void 0, function* () {
1250
1253
  var _f;
1251
1254
  const audioEffects = (options === null || options === void 0 ? void 0 : options.onResolveDeepNoiseSuppressionDependency) &&
1252
1255
  ((_f = (yield options.onResolveDeepNoiseSuppressionDependency())) === null || _f === void 0 ? void 0 : _f.deepNoiseSuppressionEffect);
@@ -1262,7 +1265,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1262
1265
  }
1263
1266
  }
1264
1267
  });
1265
- const onStopNoiseSuppressionEffect = () => __awaiter$10(void 0, void 0, void 0, function* () {
1268
+ const onStopNoiseSuppressionEffect = () => __awaiter$11(void 0, void 0, void 0, function* () {
1266
1269
  const stream = call === null || call === void 0 ? void 0 : call.localAudioStreams.find((stream) => stream.mediaStreamType === 'Audio');
1267
1270
  if (stream && (options === null || options === void 0 ? void 0 : options.onResolveDeepNoiseSuppressionDependency)) {
1268
1271
  const audioEffects = {
@@ -1271,37 +1274,37 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1271
1274
  return yield stream.feature(communicationCalling.Features.AudioEffects).stopEffects(audioEffects);
1272
1275
  }
1273
1276
  });
1274
- const onStartCaptions = (options) => __awaiter$10(void 0, void 0, void 0, function* () {
1277
+ const onStartCaptions = (options) => __awaiter$11(void 0, void 0, void 0, function* () {
1275
1278
  const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
1276
1279
  yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.startCaptions(options));
1277
1280
  });
1278
- const onStopCaptions = () => __awaiter$10(void 0, void 0, void 0, function* () {
1281
+ const onStopCaptions = () => __awaiter$11(void 0, void 0, void 0, function* () {
1279
1282
  const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
1280
1283
  yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.stopCaptions());
1281
1284
  });
1282
- const onSetSpokenLanguage = (language) => __awaiter$10(void 0, void 0, void 0, function* () {
1285
+ const onSetSpokenLanguage = (language) => __awaiter$11(void 0, void 0, void 0, function* () {
1283
1286
  const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
1284
1287
  yield (captionsFeature === null || captionsFeature === void 0 ? void 0 : captionsFeature.setSpokenLanguage(language));
1285
1288
  });
1286
- const onSetCaptionLanguage = (language) => __awaiter$10(void 0, void 0, void 0, function* () {
1289
+ const onSetCaptionLanguage = (language) => __awaiter$11(void 0, void 0, void 0, function* () {
1287
1290
  const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
1288
1291
  yield captionsFeature.setCaptionLanguage(language);
1289
1292
  });
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* () {
1293
+ const onSubmitSurvey = (survey) => __awaiter$11(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.CallSurvey).submitSurvey(survey)); });
1294
+ const onStartSpotlight = (userIds) => __awaiter$11(void 0, void 0, void 0, function* () {
1292
1295
  const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1293
1296
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).startSpotlight(participants));
1294
1297
  });
1295
- const onStopSpotlight = (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
1298
+ const onStopSpotlight = (userIds) => __awaiter$11(void 0, void 0, void 0, function* () {
1296
1299
  const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1297
1300
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight(participants));
1298
1301
  });
1299
- const onStopAllSpotlight = () => __awaiter$10(void 0, void 0, void 0, function* () {
1302
+ const onStopAllSpotlight = () => __awaiter$11(void 0, void 0, void 0, function* () {
1300
1303
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopAllSpotlight());
1301
1304
  });
1302
- const onMuteParticipant = (userId) => __awaiter$10(void 0, void 0, void 0, function* () {
1305
+ const onMuteParticipant = (userId) => __awaiter$11(void 0, void 0, void 0, function* () {
1303
1306
  if (call === null || call === void 0 ? void 0 : call.remoteParticipants) {
1304
- call === null || call === void 0 ? void 0 : call.remoteParticipants.forEach((participant) => __awaiter$10(void 0, void 0, void 0, function* () {
1307
+ call === null || call === void 0 ? void 0 : call.remoteParticipants.forEach((participant) => __awaiter$11(void 0, void 0, void 0, function* () {
1305
1308
  // Using toFlatCommunicationIdentifier to convert the CommunicationIdentifier to string
1306
1309
  // as _toCommunicationIdentifier(userId) comparison to participant.identifier did not work for this case
1307
1310
  if (toFlatCommunicationIdentifier(participant.identifier) === userId) {
@@ -1310,33 +1313,33 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1310
1313
  }));
1311
1314
  }
1312
1315
  });
1313
- const onMuteAllRemoteParticipants = () => __awaiter$10(void 0, void 0, void 0, function* () {
1316
+ const onMuteAllRemoteParticipants = () => __awaiter$11(void 0, void 0, void 0, function* () {
1314
1317
  call === null || call === void 0 ? void 0 : call.muteAllRemoteParticipants();
1315
1318
  });
1316
1319
  const canStartSpotlight = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Capabilities).capabilities.spotlightParticipant.isPresent;
1317
1320
  const canRemoveSpotlight = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Capabilities).capabilities.removeParticipantsSpotlight.isPresent;
1318
1321
  const onStartLocalSpotlight = canStartSpotlight
1319
- ? () => __awaiter$10(void 0, void 0, void 0, function* () {
1322
+ ? () => __awaiter$11(void 0, void 0, void 0, function* () {
1320
1323
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).startSpotlight());
1321
1324
  })
1322
1325
  : undefined;
1323
- const onStopLocalSpotlight = () => __awaiter$10(void 0, void 0, void 0, function* () {
1326
+ const onStopLocalSpotlight = () => __awaiter$11(void 0, void 0, void 0, function* () {
1324
1327
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight());
1325
1328
  });
1326
1329
  const onStartRemoteSpotlight = canStartSpotlight
1327
- ? (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
1330
+ ? (userIds) => __awaiter$11(void 0, void 0, void 0, function* () {
1328
1331
  const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1329
1332
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).startSpotlight(participants));
1330
1333
  })
1331
1334
  : undefined;
1332
1335
  const onStopRemoteSpotlight = canRemoveSpotlight
1333
- ? (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
1336
+ ? (userIds) => __awaiter$11(void 0, void 0, void 0, function* () {
1334
1337
  const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1335
1338
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight(participants));
1336
1339
  })
1337
1340
  : undefined;
1338
1341
  /* @conditional-compile-remove(together-mode) */
1339
- const onCreateTogetherModeStreamView = (...args_3) => __awaiter$10(void 0, [...args_3], void 0, function* (options = { scalingMode: 'Fit', isMirrored: false }) {
1342
+ const onCreateTogetherModeStreamView = (...args_3) => __awaiter$11(void 0, [...args_3], void 0, function* (options = { scalingMode: 'Fit', isMirrored: false }) {
1340
1343
  if (!call) {
1341
1344
  return;
1342
1345
  }
@@ -1357,7 +1360,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1357
1360
  return togetherModeCreateViewResult;
1358
1361
  });
1359
1362
  /* @conditional-compile-remove(together-mode) */
1360
- const onDisposeTogetherModeStreamViews = () => __awaiter$10(void 0, void 0, void 0, function* () {
1363
+ const onDisposeTogetherModeStreamViews = () => __awaiter$11(void 0, void 0, void 0, function* () {
1361
1364
  if (!call) {
1362
1365
  return;
1363
1366
  }
@@ -1381,39 +1384,39 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1381
1384
  }
1382
1385
  };
1383
1386
  /* @conditional-compile-remove(media-access) */
1384
- const onForbidParticipantAudio = (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
1387
+ const onForbidParticipantAudio = (userIds) => __awaiter$11(void 0, void 0, void 0, function* () {
1385
1388
  const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1386
1389
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).forbidAudio(participants));
1387
1390
  });
1388
1391
  /* @conditional-compile-remove(media-access) */
1389
- const onPermitParticipantAudio = (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
1392
+ const onPermitParticipantAudio = (userIds) => __awaiter$11(void 0, void 0, void 0, function* () {
1390
1393
  const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1391
1394
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).permitAudio(participants));
1392
1395
  });
1393
1396
  /* @conditional-compile-remove(media-access) */
1394
- const onForbidRemoteParticipantsAudio = () => __awaiter$10(void 0, void 0, void 0, function* () {
1397
+ const onForbidRemoteParticipantsAudio = () => __awaiter$11(void 0, void 0, void 0, function* () {
1395
1398
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).forbidRemoteParticipantsAudio());
1396
1399
  });
1397
1400
  /* @conditional-compile-remove(media-access) */
1398
- const onPermitRemoteParticipantsAudio = () => __awaiter$10(void 0, void 0, void 0, function* () {
1401
+ const onPermitRemoteParticipantsAudio = () => __awaiter$11(void 0, void 0, void 0, function* () {
1399
1402
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).permitRemoteParticipantsAudio());
1400
1403
  });
1401
1404
  /* @conditional-compile-remove(media-access) */
1402
- const onForbidParticipantVideo = (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
1405
+ const onForbidParticipantVideo = (userIds) => __awaiter$11(void 0, void 0, void 0, function* () {
1403
1406
  const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1404
1407
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).forbidVideo(participants));
1405
1408
  });
1406
1409
  /* @conditional-compile-remove(media-access) */
1407
- const onPermitParticipantVideo = (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
1410
+ const onPermitParticipantVideo = (userIds) => __awaiter$11(void 0, void 0, void 0, function* () {
1408
1411
  const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1409
1412
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).permitVideo(participants));
1410
1413
  });
1411
1414
  /* @conditional-compile-remove(media-access) */
1412
- const onForbidRemoteParticipantsVideo = () => __awaiter$10(void 0, void 0, void 0, function* () {
1415
+ const onForbidRemoteParticipantsVideo = () => __awaiter$11(void 0, void 0, void 0, function* () {
1413
1416
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).forbidRemoteParticipantsVideo());
1414
1417
  });
1415
1418
  /* @conditional-compile-remove(media-access) */
1416
- const onPermitRemoteParticipantsVideo = () => __awaiter$10(void 0, void 0, void 0, function* () {
1419
+ const onPermitRemoteParticipantsVideo = () => __awaiter$11(void 0, void 0, void 0, function* () {
1417
1420
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).permitRemoteParticipantsVideo());
1418
1421
  });
1419
1422
  return {
@@ -1495,7 +1498,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1495
1498
 
1496
1499
  // Copyright (c) Microsoft Corporation.
1497
1500
  // Licensed under the MIT License.
1498
- var __awaiter$$ = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1501
+ var __awaiter$10 = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1499
1502
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1500
1503
  return new (P || (P = Promise))(function (resolve, reject) {
1501
1504
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1526,7 +1529,7 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
1526
1529
  // FIXME: onStartCall API should use string, not the underlying SDK types.
1527
1530
  onStartCall: (participants, options) => {
1528
1531
  return callAgent === null || callAgent === void 0 ? void 0 : callAgent.startCall(participants, options);
1529
- }, onAddParticipant: (userId, options) => __awaiter$$(void 0, void 0, void 0, function* () {
1532
+ }, onAddParticipant: (userId, options) => __awaiter$10(void 0, void 0, void 0, function* () {
1530
1533
  const participant = _toCommunicationIdentifier(userId);
1531
1534
  if (communicationCommon.isPhoneNumberIdentifier(participant)) {
1532
1535
  call === null || call === void 0 ? void 0 : call.addParticipant(participant, options);
@@ -1534,16 +1537,16 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
1534
1537
  else if (communicationCommon.isCommunicationUserIdentifier(participant) || communicationCommon.isMicrosoftTeamsUserIdentifier(participant)) {
1535
1538
  call === null || call === void 0 ? void 0 : call.addParticipant(participant);
1536
1539
  }
1537
- }), onRemoveParticipant: (userId) => __awaiter$$(void 0, void 0, void 0, function* () {
1540
+ }), onRemoveParticipant: (userId) => __awaiter$10(void 0, void 0, void 0, function* () {
1538
1541
  const participant = _toCommunicationIdentifier(userId);
1539
1542
  yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
1540
- }), onAcceptCall: (incomingCallId, useVideo) => __awaiter$$(void 0, void 0, void 0, function* () {
1543
+ }), onAcceptCall: (incomingCallId, useVideo) => __awaiter$10(void 0, void 0, void 0, function* () {
1541
1544
  const localVideoStream = useVideo ? yield createLocalVideoStream(callClient) : undefined;
1542
1545
  const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
1543
1546
  if (incomingCall) {
1544
1547
  yield incomingCall.accept(localVideoStream ? { videoOptions: { localVideoStreams: [localVideoStream] } } : undefined);
1545
1548
  }
1546
- }), onRejectCall: (incomingCallId) => __awaiter$$(void 0, void 0, void 0, function* () {
1549
+ }), onRejectCall: (incomingCallId) => __awaiter$10(void 0, void 0, void 0, function* () {
1547
1550
  const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
1548
1551
  if (incomingCall) {
1549
1552
  yield incomingCall.reject();
@@ -1551,13 +1554,13 @@ const createDefaultCallingHandlers = memoizeOne((...args) => {
1551
1554
  }),
1552
1555
  /* @conditional-compile-remove(breakout-rooms) */
1553
1556
  onHangUp: breakoutRoomOriginCall
1554
- ? () => __awaiter$$(void 0, void 0, void 0, function* () { return breakoutRoomOriginCall.hangUp().then(() => commonCallingHandlers.onHangUp()); })
1557
+ ? () => __awaiter$10(void 0, void 0, void 0, function* () { return breakoutRoomOriginCall.hangUp().then(() => commonCallingHandlers.onHangUp()); })
1555
1558
  : commonCallingHandlers.onHangUp });
1556
1559
  });
1557
1560
 
1558
1561
  // Copyright (c) Microsoft Corporation.
1559
1562
  // Licensed under the MIT License.
1560
- var __awaiter$_ = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1563
+ var __awaiter$$ = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1561
1564
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1562
1565
  return new (P || (P = Promise))(function (resolve, reject) {
1563
1566
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -1588,7 +1591,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
1588
1591
  return undefined;
1589
1592
  },
1590
1593
  /* @conditional-compile-remove(teams-identity-support-beta) */
1591
- onAddParticipant: (userId, options) => __awaiter$_(void 0, void 0, void 0, function* () {
1594
+ onAddParticipant: (userId, options) => __awaiter$$(void 0, void 0, void 0, function* () {
1592
1595
  const participant = _toCommunicationIdentifier(userId);
1593
1596
  const threadId = options === null || options === void 0 ? void 0 : options.threadId;
1594
1597
  if (communicationCommon.isCommunicationUserIdentifier(participant)) {
@@ -1601,7 +1604,7 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
1601
1604
  call === null || call === void 0 ? void 0 : call.addParticipant(participant, threadId ? { threadId } : undefined);
1602
1605
  }
1603
1606
  call === null || call === void 0 ? void 0 : call.addParticipant(participant);
1604
- }), onRemoveParticipant: (userId) => __awaiter$_(void 0, void 0, void 0, function* () {
1607
+ }), onRemoveParticipant: (userId) => __awaiter$$(void 0, void 0, void 0, function* () {
1605
1608
  const participant = _toCommunicationIdentifier(userId);
1606
1609
  if (communicationCommon.isCommunicationUserIdentifier(participant)) {
1607
1610
  throw new Error('CommunicationIdentifier in Teams call is not supported!');
@@ -1610,20 +1613,20 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
1610
1613
  throw new Error('Removing Microsoft Teams app identifier is not supported!');
1611
1614
  }
1612
1615
  yield (call === null || call === void 0 ? void 0 : call.removeParticipant(participant));
1613
- }), onAcceptCall: (incomingCallId, useVideo) => __awaiter$_(void 0, void 0, void 0, function* () {
1616
+ }), onAcceptCall: (incomingCallId, useVideo) => __awaiter$$(void 0, void 0, void 0, function* () {
1614
1617
  const localVideoStream = useVideo ? yield createLocalVideoStream(callClient) : undefined;
1615
1618
  const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
1616
1619
  if (incomingCall) {
1617
1620
  yield incomingCall.accept(localVideoStream ? { videoOptions: { localVideoStreams: [localVideoStream] } } : undefined);
1618
1621
  }
1619
- }), onRejectCall: (incomingCallId) => __awaiter$_(void 0, void 0, void 0, function* () {
1622
+ }), onRejectCall: (incomingCallId) => __awaiter$$(void 0, void 0, void 0, function* () {
1620
1623
  const incomingCall = callAgent === null || callAgent === void 0 ? void 0 : callAgent.incomingCalls.find((incomingCall) => incomingCall.id === incomingCallId);
1621
1624
  if (incomingCall) {
1622
1625
  yield incomingCall.reject();
1623
1626
  }
1624
1627
  }),
1625
1628
  /* @conditional-compile-remove(together-mode) */
1626
- onStartTogetherMode: () => __awaiter$_(void 0, void 0, void 0, function* () {
1629
+ onStartTogetherMode: () => __awaiter$$(void 0, void 0, void 0, function* () {
1627
1630
  if (!call) {
1628
1631
  return;
1629
1632
  }
@@ -1670,11 +1673,9 @@ const notificationStackSelector = reselect.createSelector([
1670
1673
  // have timestamps for errors.
1671
1674
  const activeErrorMessages = [];
1672
1675
  const isSafari = () => {
1673
- /* @conditional-compile-remove(calling-environment-info) */
1674
1676
  return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.browser) === 'safari';
1675
1677
  };
1676
1678
  const isMacOS = () => {
1677
- /* @conditional-compile-remove(calling-environment-info) */
1678
1679
  return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.platform) === 'mac';
1679
1680
  };
1680
1681
  // Errors reported via diagnostics are more reliable than from API method failures, so process those first.
@@ -1785,7 +1786,12 @@ const notificationStackSelector = reselect.createSelector([
1785
1786
  //below is for active notifications
1786
1787
  const activeNotifications = [];
1787
1788
  if ((_u = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.speakingWhileMicrophoneIsMuted) === null || _u === void 0 ? void 0 : _u.value) {
1788
- activeNotifications.push({ type: 'speakingWhileMuted', timestamp: new Date(Date.now()), autoDismiss: true });
1789
+ activeNotifications.push({
1790
+ type: 'speakingWhileMuted',
1791
+ timestamp: new Date(Date.now()),
1792
+ autoDismiss: true,
1793
+ ariaLive: 'off' // "You're muted" is too noisy, so we don't want to announce it.
1794
+ });
1789
1795
  }
1790
1796
  /* @conditional-compile-remove(breakout-rooms) */
1791
1797
  if (latestNotifications['assignedBreakoutRoomOpened']) {
@@ -1937,7 +1943,7 @@ const getCaptionsSpeakerIdentifier = (captions) => {
1937
1943
 
1938
1944
  // Copyright (c) Microsoft Corporation.
1939
1945
  // Licensed under the MIT License.
1940
- var __awaiter$Z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1946
+ var __awaiter$_ = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
1941
1947
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1942
1948
  return new (P || (P = Promise))(function (resolve, reject) {
1943
1949
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -2018,7 +2024,7 @@ class ProxyDeviceManager {
2018
2024
  }
2019
2025
  }
2020
2026
  };
2021
- this.permissionsApiStateChangeHandler = () => __awaiter$Z(this, void 0, void 0, function* () {
2027
+ this.permissionsApiStateChangeHandler = () => __awaiter$_(this, void 0, void 0, function* () {
2022
2028
  yield this.updateDevicePermissionState();
2023
2029
  });
2024
2030
  /**
@@ -2029,13 +2035,13 @@ class ProxyDeviceManager {
2029
2035
  this.selectCamera = (videoDeviceInfo) => {
2030
2036
  this._context.setDeviceManagerSelectedCamera(videoDeviceInfo);
2031
2037
  };
2032
- this.videoDevicesUpdated = () => __awaiter$Z(this, void 0, void 0, function* () {
2038
+ this.videoDevicesUpdated = () => __awaiter$_(this, void 0, void 0, function* () {
2033
2039
  // Device Manager always has a camera with '' name if there are no real camera devices available.
2034
2040
  // We don't want to show that in the UI.
2035
2041
  const realCameras = (yield this._deviceManager.getCameras()).filter((c) => !!c.name);
2036
2042
  this._context.setDeviceManagerCameras(dedupeById(realCameras));
2037
2043
  });
2038
- this.audioDevicesUpdated = () => __awaiter$Z(this, void 0, void 0, function* () {
2044
+ this.audioDevicesUpdated = () => __awaiter$_(this, void 0, void 0, function* () {
2039
2045
  this._context.setDeviceManagerMicrophones(dedupeById(yield this._deviceManager.getMicrophones()));
2040
2046
  if (this._deviceManager.isSpeakerSelectionAvailable) {
2041
2047
  this._context.setDeviceManagerSpeakers(dedupeById(yield this._deviceManager.getSpeakers()));
@@ -2047,7 +2053,7 @@ class ProxyDeviceManager {
2047
2053
  this.selectedSpeakerChanged = () => {
2048
2054
  this._context.setDeviceManagerSelectedSpeaker(this._deviceManager.selectedSpeaker);
2049
2055
  };
2050
- this.updateDevicePermissionState = (sdkDeviceAccessState) => __awaiter$Z(this, void 0, void 0, function* () {
2056
+ this.updateDevicePermissionState = (sdkDeviceAccessState) => __awaiter$_(this, void 0, void 0, function* () {
2051
2057
  let hasCameraPermission = !!(sdkDeviceAccessState === null || sdkDeviceAccessState === void 0 ? void 0 : sdkDeviceAccessState.video);
2052
2058
  let hasMicPermission = !!(sdkDeviceAccessState === null || sdkDeviceAccessState === void 0 ? void 0 : sdkDeviceAccessState.audio);
2053
2059
  // Supplement the SDK values with values from the Permissions API to get a better understanding of the device
@@ -2125,7 +2131,7 @@ class ProxyDeviceManager {
2125
2131
  }
2126
2132
  case 'askDevicePermission': {
2127
2133
  return this._context.withAsyncErrorTeedToState((...args) => {
2128
- return target.askDevicePermission(...args).then((deviceAccess) => __awaiter$Z(this, void 0, void 0, function* () {
2134
+ return target.askDevicePermission(...args).then((deviceAccess) => __awaiter$_(this, void 0, void 0, function* () {
2129
2135
  yield this.updateDevicePermissionState(deviceAccess);
2130
2136
  return deviceAccess;
2131
2137
  }));
@@ -2526,7 +2532,7 @@ class CallIdHistory {
2526
2532
 
2527
2533
  // Copyright (c) Microsoft Corporation.
2528
2534
  // Licensed under the MIT License.
2529
- var __awaiter$Y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
2535
+ var __awaiter$Z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
2530
2536
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2531
2537
  return new (P || (P = Promise))(function (resolve, reject) {
2532
2538
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -3615,7 +3621,7 @@ let CallContext$2 = class CallContext {
3615
3621
  * @throws CallError. Exceptions thrown from `f` are tagged with the failed `target.
3616
3622
  */
3617
3623
  withAsyncErrorTeedToState(action, target) {
3618
- return (...args) => __awaiter$Y(this, void 0, void 0, function* () {
3624
+ return (...args) => __awaiter$Z(this, void 0, void 0, function* () {
3619
3625
  try {
3620
3626
  return yield action(...args);
3621
3627
  }
@@ -4174,7 +4180,7 @@ function _logStreamEvent(eventName, streamLogInfo, error) {
4174
4180
 
4175
4181
  // Copyright (c) Microsoft Corporation.
4176
4182
  // Licensed under the MIT License.
4177
- var __awaiter$X = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
4183
+ var __awaiter$Y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
4178
4184
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4179
4185
  return new (P || (P = Promise))(function (resolve, reject) {
4180
4186
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -4184,7 +4190,7 @@ var __awaiter$X = (window && window.__awaiter) || function (thisArg, _arguments,
4184
4190
  });
4185
4191
  };
4186
4192
  function createViewVideo(context, internalContext, callId, stream, participantId, options) {
4187
- return __awaiter$X(this, void 0, void 0, function* () {
4193
+ return __awaiter$Y(this, void 0, void 0, function* () {
4188
4194
  // we can only have 3 types of createView
4189
4195
  let streamEventType;
4190
4196
  // we will reuse these for local as well but we need to make sure the remote stream is passed in like before.
@@ -4313,7 +4319,7 @@ function createViewVideo(context, internalContext, callId, stream, participantId
4313
4319
  });
4314
4320
  }
4315
4321
  function createViewUnparentedVideo(context, internalContext, stream, options) {
4316
- return __awaiter$X(this, void 0, void 0, function* () {
4322
+ return __awaiter$Y(this, void 0, void 0, function* () {
4317
4323
  const renderInfo = internalContext.getUnparentedRenderInfo(stream);
4318
4324
  if (renderInfo && renderInfo.status === 'Rendered') {
4319
4325
  console.warn('Unparented LocalVideoStream is already rendered');
@@ -4482,7 +4488,7 @@ function createView$1(context, internalContext, callId, participantId, stream, o
4482
4488
  // Render LocalVideoStream that is not part of a Call
4483
4489
  // 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).
4484
4490
  // We do not have a startLocalPreviewVideo function, so as a workaround we ensure any errors are propagated here.
4485
- return context.withAsyncErrorTeedToState(() => __awaiter$X(this, void 0, void 0, function* () { return yield createViewUnparentedVideo(context, internalContext, stream, options); }), 'Call.startVideo')();
4491
+ return context.withAsyncErrorTeedToState(() => __awaiter$Y(this, void 0, void 0, function* () { return yield createViewUnparentedVideo(context, internalContext, stream, options); }), 'Call.startVideo')();
4486
4492
  }
4487
4493
  else {
4488
4494
  _logStreamEvent(EventNames.CREATE_STREAM_INVALID_PARAMS, { streamType });
@@ -4678,7 +4684,7 @@ class RecordingSubscriber {
4678
4684
 
4679
4685
  // Copyright (c) Microsoft Corporation.
4680
4686
  // Licensed under the MIT License.
4681
- var __awaiter$W = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
4687
+ var __awaiter$X = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
4682
4688
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4683
4689
  return new (P || (P = Promise))(function (resolve, reject) {
4684
4690
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -4702,7 +4708,7 @@ class PPTLiveSubscriber {
4702
4708
  this._context.setCallPPTLiveActive(this._callIdRef.callId, this._pptLive.isActive);
4703
4709
  this.checkAndUpdatePPTLiveParticipant();
4704
4710
  };
4705
- this.checkAndUpdatePPTLiveParticipant = () => __awaiter$W(this, void 0, void 0, function* () {
4711
+ this.checkAndUpdatePPTLiveParticipant = () => __awaiter$X(this, void 0, void 0, function* () {
4706
4712
  if (!this._pptLive.activePresenterId) {
4707
4713
  return;
4708
4714
  }
@@ -5156,7 +5162,7 @@ class BreakoutRoomsSubscriber {
5156
5162
  }
5157
5163
  }
5158
5164
 
5159
- var __awaiter$V = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
5165
+ var __awaiter$W = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
5160
5166
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5161
5167
  return new (P || (P = Promise))(function (resolve, reject) {
5162
5168
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -5183,7 +5189,7 @@ function createView(context, internalContext, callId, stream, options) {
5183
5189
  /* @conditional-compile-remove(together-mode) */
5184
5190
  // This function is used to create a view for a stream that is part of a call feature.
5185
5191
  function createCallFeatureViewVideo(context, internalContext, callId, stream, options) {
5186
- return __awaiter$V(this, void 0, void 0, function* () {
5192
+ return __awaiter$W(this, void 0, void 0, function* () {
5187
5193
  const streamEventType = 'createViewCallFeature';
5188
5194
  const streamType = stream === null || stream === void 0 ? void 0 : stream.mediaStreamType;
5189
5195
  const callFeatureStreamId = stream && stream.id;
@@ -5740,7 +5746,7 @@ class IncomingCallSubscriber {
5740
5746
 
5741
5747
  // Copyright (c) Microsoft Corporation.
5742
5748
  // Licensed under the MIT License.
5743
- var __awaiter$U = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
5749
+ var __awaiter$V = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
5744
5750
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5745
5751
  return new (P || (P = Promise))(function (resolve, reject) {
5746
5752
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -5760,14 +5766,14 @@ class ProxyIncomingCall {
5760
5766
  switch (prop) {
5761
5767
  case 'accept': {
5762
5768
  return this._context.withAsyncErrorTeedToState(function (...args) {
5763
- return __awaiter$U(this, void 0, void 0, function* () {
5769
+ return __awaiter$V(this, void 0, void 0, function* () {
5764
5770
  return yield target.accept(...args);
5765
5771
  });
5766
5772
  }, 'IncomingCall.accept');
5767
5773
  }
5768
5774
  case 'reject': {
5769
5775
  return this._context.withAsyncErrorTeedToState(function (...args) {
5770
- return __awaiter$U(this, void 0, void 0, function* () {
5776
+ return __awaiter$V(this, void 0, void 0, function* () {
5771
5777
  return yield target.reject(...args);
5772
5778
  });
5773
5779
  }, 'IncomingCall.reject');
@@ -5789,7 +5795,7 @@ const incomingCallDeclaratify = (incomingCall, context) => {
5789
5795
 
5790
5796
  // Copyright (c) Microsoft Corporation.
5791
5797
  // Licensed under the MIT License.
5792
- var __awaiter$T = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
5798
+ var __awaiter$U = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
5793
5799
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5794
5800
  return new (P || (P = Promise))(function (resolve, reject) {
5795
5801
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -5809,14 +5815,14 @@ class ProxyTeamsIncomingCall {
5809
5815
  switch (prop) {
5810
5816
  case 'accept': {
5811
5817
  return this._context.withAsyncErrorTeedToState(function (...args) {
5812
- return __awaiter$T(this, void 0, void 0, function* () {
5818
+ return __awaiter$U(this, void 0, void 0, function* () {
5813
5819
  return yield target.accept(...args);
5814
5820
  });
5815
5821
  }, 'IncomingCall.accept');
5816
5822
  }
5817
5823
  case 'reject': {
5818
5824
  return this._context.withAsyncErrorTeedToState(function (...args) {
5819
- return __awaiter$T(this, void 0, void 0, function* () {
5825
+ return __awaiter$U(this, void 0, void 0, function* () {
5820
5826
  return yield target.reject(...args);
5821
5827
  });
5822
5828
  }, 'IncomingCall.reject');
@@ -6035,7 +6041,7 @@ const clearCallRelatedState = (context, internalContext) => {
6035
6041
 
6036
6042
  // Copyright (c) Microsoft Corporation.
6037
6043
  // Licensed under the MIT License.
6038
- var __awaiter$S = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6044
+ var __awaiter$T = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6039
6045
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6040
6046
  return new (P || (P = Promise))(function (resolve, reject) {
6041
6047
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -6061,56 +6067,56 @@ class ProxyCallCommon {
6061
6067
  switch (prop) {
6062
6068
  case 'mute': {
6063
6069
  return this._context.withAsyncErrorTeedToState(function (...args) {
6064
- return __awaiter$S(this, void 0, void 0, function* () {
6070
+ return __awaiter$T(this, void 0, void 0, function* () {
6065
6071
  return yield target.mute(...args);
6066
6072
  });
6067
6073
  }, 'Call.mute');
6068
6074
  }
6069
6075
  case 'unmute': {
6070
6076
  return this._context.withAsyncErrorTeedToState(function (...args) {
6071
- return __awaiter$S(this, void 0, void 0, function* () {
6077
+ return __awaiter$T(this, void 0, void 0, function* () {
6072
6078
  return yield target.unmute(...args);
6073
6079
  });
6074
6080
  }, 'Call.unmute');
6075
6081
  }
6076
6082
  case 'startVideo': {
6077
6083
  return this._context.withAsyncErrorTeedToState(function (...args) {
6078
- return __awaiter$S(this, void 0, void 0, function* () {
6084
+ return __awaiter$T(this, void 0, void 0, function* () {
6079
6085
  return yield target.startVideo(...args);
6080
6086
  });
6081
6087
  }, 'Call.startVideo');
6082
6088
  }
6083
6089
  case 'stopVideo': {
6084
6090
  return this._context.withAsyncErrorTeedToState(function (...args) {
6085
- return __awaiter$S(this, void 0, void 0, function* () {
6091
+ return __awaiter$T(this, void 0, void 0, function* () {
6086
6092
  return yield target.stopVideo(...args);
6087
6093
  });
6088
6094
  }, 'Call.stopVideo');
6089
6095
  }
6090
6096
  case 'startScreenSharing': {
6091
6097
  return this._context.withAsyncErrorTeedToState(function (...args) {
6092
- return __awaiter$S(this, void 0, void 0, function* () {
6098
+ return __awaiter$T(this, void 0, void 0, function* () {
6093
6099
  return yield target.startScreenSharing(...args);
6094
6100
  });
6095
6101
  }, 'Call.startScreenSharing');
6096
6102
  }
6097
6103
  case 'stopScreenSharing': {
6098
6104
  return this._context.withAsyncErrorTeedToState(function (...args) {
6099
- return __awaiter$S(this, void 0, void 0, function* () {
6105
+ return __awaiter$T(this, void 0, void 0, function* () {
6100
6106
  return yield target.stopScreenSharing(...args);
6101
6107
  });
6102
6108
  }, 'Call.stopScreenSharing');
6103
6109
  }
6104
6110
  case 'hold': {
6105
6111
  return this._context.withAsyncErrorTeedToState(function (...args) {
6106
- return __awaiter$S(this, void 0, void 0, function* () {
6112
+ return __awaiter$T(this, void 0, void 0, function* () {
6107
6113
  return yield target.hold(...args);
6108
6114
  });
6109
6115
  }, 'Call.hold');
6110
6116
  }
6111
6117
  case 'resume': {
6112
6118
  return this._context.withAsyncErrorTeedToState(function (...args) {
6113
- return __awaiter$S(this, void 0, void 0, function* () {
6119
+ return __awaiter$T(this, void 0, void 0, function* () {
6114
6120
  return yield target.resume(...args);
6115
6121
  });
6116
6122
  }, 'Call.resume');
@@ -6177,7 +6183,7 @@ class ProxyTeamsCaptions {
6177
6183
  get(target, prop) {
6178
6184
  switch (prop) {
6179
6185
  case 'startCaptions':
6180
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$S(this, void 0, void 0, function* () {
6186
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$T(this, void 0, void 0, function* () {
6181
6187
  var _a, _b;
6182
6188
  this._context.setStartCaptionsInProgress(this._call.id, true);
6183
6189
  try {
@@ -6191,7 +6197,7 @@ class ProxyTeamsCaptions {
6191
6197
  }
6192
6198
  }), 'Call.feature');
6193
6199
  case 'stopCaptions':
6194
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$S(this, void 0, void 0, function* () {
6200
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$T(this, void 0, void 0, function* () {
6195
6201
  const ret = yield target.stopCaptions(...args);
6196
6202
  this._context.setIsCaptionActive(this._call.id, false);
6197
6203
  this._context.setStartCaptionsInProgress(this._call.id, false);
@@ -6199,13 +6205,13 @@ class ProxyTeamsCaptions {
6199
6205
  return ret;
6200
6206
  }), 'Call.feature');
6201
6207
  case 'setSpokenLanguage':
6202
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$S(this, void 0, void 0, function* () {
6208
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$T(this, void 0, void 0, function* () {
6203
6209
  const ret = yield target.setSpokenLanguage(...args);
6204
6210
  this._context.setSelectedSpokenLanguage(this._call.id, args[0]);
6205
6211
  return ret;
6206
6212
  }), 'Call.feature');
6207
6213
  case 'setCaptionLanguage':
6208
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$S(this, void 0, void 0, function* () {
6214
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$T(this, void 0, void 0, function* () {
6209
6215
  const ret = yield target.setCaptionLanguage(...args);
6210
6216
  this._context.setSelectedCaptionLanguage(this._call.id, args[0]);
6211
6217
  return ret;
@@ -6226,7 +6232,7 @@ class ProxyCaptions {
6226
6232
  get(target, prop) {
6227
6233
  switch (prop) {
6228
6234
  case 'startCaptions':
6229
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$S(this, void 0, void 0, function* () {
6235
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$T(this, void 0, void 0, function* () {
6230
6236
  var _a, _b;
6231
6237
  this._context.setStartCaptionsInProgress(this._call.id, true);
6232
6238
  try {
@@ -6240,7 +6246,7 @@ class ProxyCaptions {
6240
6246
  }
6241
6247
  }), 'Call.feature');
6242
6248
  case 'stopCaptions':
6243
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$S(this, void 0, void 0, function* () {
6249
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$T(this, void 0, void 0, function* () {
6244
6250
  const ret = yield target.stopCaptions(...args);
6245
6251
  this._context.setIsCaptionActive(this._call.id, false);
6246
6252
  this._context.setStartCaptionsInProgress(this._call.id, false);
@@ -6248,7 +6254,7 @@ class ProxyCaptions {
6248
6254
  return ret;
6249
6255
  }), 'Call.feature');
6250
6256
  case 'setSpokenLanguage':
6251
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$S(this, void 0, void 0, function* () {
6257
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$T(this, void 0, void 0, function* () {
6252
6258
  const ret = yield target.setSpokenLanguage(...args);
6253
6259
  this._context.setSelectedSpokenLanguage(this._call.id, args[0]);
6254
6260
  return ret;
@@ -6268,12 +6274,12 @@ class ProxySpotlightCallFeature {
6268
6274
  get(target, prop) {
6269
6275
  switch (prop) {
6270
6276
  case 'startSpotlight':
6271
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$S(this, void 0, void 0, function* () {
6277
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$T(this, void 0, void 0, function* () {
6272
6278
  const ret = yield target.startSpotlight(...args);
6273
6279
  return ret;
6274
6280
  }), 'Call.feature');
6275
6281
  case 'stopSpotlight':
6276
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$S(this, void 0, void 0, function* () {
6282
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$T(this, void 0, void 0, function* () {
6277
6283
  const ret = yield target.stopSpotlight(...args);
6278
6284
  return ret;
6279
6285
  }), 'Call.feature');
@@ -6315,7 +6321,7 @@ class ProxyTransferCallFeature {
6315
6321
 
6316
6322
  // Copyright (c) Microsoft Corporation.
6317
6323
  // Licensed under the MIT License.
6318
- var __awaiter$R = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6324
+ var __awaiter$S = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6319
6325
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6320
6326
  return new (P || (P = Promise))(function (resolve, reject) {
6321
6327
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -6329,7 +6335,7 @@ class ProxyCall extends ProxyCallCommon {
6329
6335
  switch (prop) {
6330
6336
  case 'addParticipant': {
6331
6337
  return this.getContext().withAsyncErrorTeedToState(function (...args) {
6332
- return __awaiter$R(this, void 0, void 0, function* () {
6338
+ return __awaiter$S(this, void 0, void 0, function* () {
6333
6339
  return yield target.addParticipant(...args);
6334
6340
  });
6335
6341
  }, 'Call.addParticipant');
@@ -6614,7 +6620,7 @@ class InternalCallContext {
6614
6620
 
6615
6621
  // Copyright (c) Microsoft Corporation.
6616
6622
  // Licensed under the MIT License.
6617
- var __awaiter$Q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6623
+ var __awaiter$R = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6618
6624
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6619
6625
  return new (P || (P = Promise))(function (resolve, reject) {
6620
6626
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -6629,7 +6635,7 @@ class ProxyTeamsCall extends ProxyCallCommon {
6629
6635
  /* @conditional-compile-remove(teams-identity-support-beta) */
6630
6636
  case 'addParticipant': {
6631
6637
  return this.getContext().withAsyncErrorTeedToState(function (...args) {
6632
- return __awaiter$Q(this, void 0, void 0, function* () {
6638
+ return __awaiter$R(this, void 0, void 0, function* () {
6633
6639
  return yield target.addParticipant(...args);
6634
6640
  });
6635
6641
  }, 'TeamsCall.addParticipant');
@@ -6736,7 +6742,7 @@ const teamsCallAgentDeclaratify = (callAgent, context, internalContext) => {
6736
6742
 
6737
6743
  // Copyright (c) Microsoft Corporation.
6738
6744
  // Licensed under the MIT License.
6739
- var __awaiter$P = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6745
+ var __awaiter$Q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6740
6746
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6741
6747
  return new (P || (P = Promise))(function (resolve, reject) {
6742
6748
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -6758,7 +6764,7 @@ class ProxyVideoStreamRendererView {
6758
6764
  get(target, prop) {
6759
6765
  switch (prop) {
6760
6766
  case 'updateScalingMode': {
6761
- return (...args) => __awaiter$P(this, void 0, void 0, function* () {
6767
+ return (...args) => __awaiter$Q(this, void 0, void 0, function* () {
6762
6768
  yield target.updateScalingMode(...args);
6763
6769
  this._context.setRemoteVideoStreamViewScalingMode(this._callId, this._participantId, this._streamId, args[0]);
6764
6770
  });
@@ -6779,7 +6785,7 @@ const videoStreamRendererViewDeclaratify = (view, context, callId, participantId
6779
6785
 
6780
6786
  // Copyright (c) Microsoft Corporation.
6781
6787
  // Licensed under the MIT License.
6782
- var __awaiter$O = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6788
+ var __awaiter$P = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
6783
6789
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6784
6790
  return new (P || (P = Promise))(function (resolve, reject) {
6785
6791
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -6801,7 +6807,7 @@ class ProxyCallClient {
6801
6807
  get(target, prop) {
6802
6808
  switch (prop) {
6803
6809
  case 'createCallAgent': {
6804
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$O(this, void 0, void 0, function* () {
6810
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$P(this, void 0, void 0, function* () {
6805
6811
  // createCallAgent will throw an exception if the previous callAgent was not disposed. If the previous
6806
6812
  // callAgent was disposed then it would have unsubscribed to events so we can just create a new declarative
6807
6813
  // callAgent if the createCallAgent succeeds.
@@ -6814,7 +6820,7 @@ class ProxyCallClient {
6814
6820
  }), 'CallClient.createCallAgent');
6815
6821
  }
6816
6822
  case 'createTeamsCallAgent': {
6817
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$O(this, void 0, void 0, function* () {
6823
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$P(this, void 0, void 0, function* () {
6818
6824
  // createCallAgent will throw an exception if the previous callAgent was not disposed. If the previous
6819
6825
  // callAgent was disposed then it would have unsubscribed to events so we can just create a new declarative
6820
6826
  // callAgent if the createCallAgent succeeds.
@@ -6827,7 +6833,7 @@ class ProxyCallClient {
6827
6833
  }), 'CallClient.createTeamsCallAgent');
6828
6834
  }
6829
6835
  case 'getDeviceManager': {
6830
- return this._context.withAsyncErrorTeedToState(() => __awaiter$O(this, void 0, void 0, function* () {
6836
+ return this._context.withAsyncErrorTeedToState(() => __awaiter$P(this, void 0, void 0, function* () {
6831
6837
  // As of writing, the SDK always returns the same instance of DeviceManager so we keep a reference of
6832
6838
  // DeviceManager and if it does not change we return the cached DeclarativeDeviceManager. If it does not we'll
6833
6839
  // throw an error that indicate we need to fix this issue as our implementation has diverged from the SDK.
@@ -6855,7 +6861,7 @@ class ProxyCallClient {
6855
6861
  /**
6856
6862
  * add to this object if we want to proxy anything else off the DebugInfo feature object.
6857
6863
  */
6858
- return Object.assign(Object.assign({}, feature), { getEnvironmentInfo: () => __awaiter$O(this, void 0, void 0, function* () {
6864
+ return Object.assign(Object.assign({}, feature), { getEnvironmentInfo: () => __awaiter$P(this, void 0, void 0, function* () {
6859
6865
  const environmentInfo = yield feature.getEnvironmentInfo();
6860
6866
  this._context.setEnvironmentInfo(environmentInfo);
6861
6867
  return environmentInfo;
@@ -6915,7 +6921,7 @@ const createStatefulCallClientWithDeps = (callClient, context, internalContext)
6915
6921
  });
6916
6922
  Object.defineProperty(callClient, 'createView', {
6917
6923
  configurable: false,
6918
- value: (callId, participantId, stream, options) => __awaiter$O(void 0, void 0, void 0, function* () {
6924
+ value: (callId, participantId, stream, options) => __awaiter$P(void 0, void 0, void 0, function* () {
6919
6925
  const participantIdKind = participantId ? communicationCommon.getIdentifierKind(participantId) : undefined;
6920
6926
  const result = yield createView$1(context, internalContext, callId, participantIdKind, stream, options);
6921
6927
  // We only need to declaratify the VideoStreamRendererView object for remote participants. Because the updateScalingMode only needs to be called on remote participant stream views.
@@ -6929,7 +6935,7 @@ const createStatefulCallClientWithDeps = (callClient, context, internalContext)
6929
6935
  /* @conditional-compile-remove(together-mode) */
6930
6936
  Object.defineProperty(callClient, 'createCallFeatureView', {
6931
6937
  configurable: false,
6932
- value: (callId, stream, options) => __awaiter$O(void 0, void 0, void 0, function* () {
6938
+ value: (callId, stream, options) => __awaiter$P(void 0, void 0, void 0, function* () {
6933
6939
  const result = yield createView(context, internalContext, callId, stream, options);
6934
6940
  return result;
6935
6941
  })
@@ -7165,7 +7171,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
7165
7171
  wordBreak: 'break-word'
7166
7172
  });
7167
7173
 
7168
- var participantItem$n={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$o={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$n={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$n={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$n={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",imageUploadsPendingError:"Image is uploading, please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarAriaLabel:"Message Formatting Toolbar",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var rttModal$n={rttModalAriaLabel:"Turn on RTT Modal",rttModalTitle:"Turn on RTT?",rttModalText:"Real-time text (RTT) will be turned on for everyone in the meeting.",rttConfirmButtonLabel:"Turn on",rttCancelButtonLabel:"Cancel",rttCloseModalButtonAriaLabel:"Close RTT Modal"};var mentionPopover$n={mentionPopoverHeader:"Suggestions"};var imageOverlay$n={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$n={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$n={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$n={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera",offSplitButtonAriaLabel:"Turn on camera",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects",cameraButtonAriaDescription:"camera options"};var microphoneButton$n={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute mic",offSplitButtonAriaLabel:"Unmute mic",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute mic",onSplitButtonMicrophonePrimaryAction:"Mute mic",microphonePrimaryActionSplitButtonTitle:"Use microphone",microphoneAriaDescription:"Audio options",deepNoiseSuppressionTitle:"Noise suppression",deepNoiseSuppressionOnAnnouncement:"Deep noise suppression has been turned on",deepNoiseSuppressionOffAnnouncement:"Deep noise suppression has been turned off"};var devicesButton$n={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$n={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$n={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$n={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$n={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var rtt$n={isTypingText:"RTT typing"};var messageThread$n={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{status} {author} said {message}",messageContentMineAriaText:"{status} You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentUploadsPendingError:"File is uploading, please wait.",imageUploadsPendingError:"Image is uploading, please wait.",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var errorBar$n={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",teamsMeetingCallNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted.",mutedByRemoteParticipant:"You were muted by another participant."};var notificationStack$n={callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",dismissButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",dismissButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",dismissButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",dismissButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",dismissButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",dismissButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",dismissButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",dismissButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close"},teamsMeetingCallNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close",message:"Join this call from your phone for better sound. You can continue viewing the meeting on this device.",primaryButtonLabel:"Join by Phone"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",dismissButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",dismissButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"Close"},callMicrophoneAccessDeniedSafari:{title:"Unable to access microphone",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",dismissButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",dismissButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",dismissButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",dismissButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",dismissButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"Close"},callCameraAccessDeniedSafari:{title:"Unable to access camera",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",dismissButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",dismissButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",dismissButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",dismissButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",dismissButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",dismissButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",dismissButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",dismissButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",dismissButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",dismissButtonAriaLabel:"Close"},mutedByRemoteParticipant:{title:"You were muted by another participant.",dismissButtonAriaLabel:"Close"},recordingStarted:{title:"Recording has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},transcriptionStarted:{title:"Transcription has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingStopped:{title:"Recording is being saved.",message:"Recording has stopped.",dismissButtonAriaLabel:"Close"},transcriptionStopped:{title:"Transcription is being saved.",message:"Transcription has stopped.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStarted:{title:"Recording and transcription have started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStopped:{title:"Recording and transcription are being saved.",message:"Recording and transcription have stopped.",dismissButtonAriaLabel:"Close"},recordingStoppedStillTranscribing:{title:"Recording has stopped.",message:"You are now only transcribing this meeting.",dismissButtonAriaLabel:"Close"},transcriptionStoppedStillRecording:{title:"Transcription has stopped.",message:"You are now only recording this meeting.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomOpened:{title:"We'll move you to your assigned room in 5 seconds.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomChanged:{title:"Your breakout room has changed",message:"We'll move you to your assigned room in 5 seconds.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomOpenedPromptJoin:{title:"Join breakout room?",message:"You've been assigned to a breakout room.",dismissButtonAriaLabel:"Close",primaryButtonLabel:"Join room",secondaryButtonLabel:"Later"},breakoutRoomJoined:{title:"You have joined a breakout room.",dismissButtonAriaLabel:"Close"},breakoutRoomClosingSoon:{title:"Room time limit about to expire.",message:"This room will close in 30 seconds",dismissButtonAriaLabel:"Close"}};var videoGallery$n={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localScreenShareLoadingMessage:"Loading your screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoMovementAriaLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee",muteParticipantMenuItemLabel:"Mute",waitingScreenText:"Waiting for others to join"};var dialpad$n={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$n={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$n={participantStateRinging:"Calling...",participantReconnecting:"Reconnecting...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options {displayName} {isMuted} {isHandRaised} {state} {isSpeaking}",moreOptionsParticipantMutedStateMutedAriaLabel:"muted",moreOptionsParticipantMutedStateUnmutedAriaLabel:"unmuted",moreOptionsParticipantHandRaisedAriaLabel:"Hand raised",moreOptionsParticipantIsSpeakingAriaLabel:"Speaking"};var CameraAndMicrophoneSitePermissionsRequest$n={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$n={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$n={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$n={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$n={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$n={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$n={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$n={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$n={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$n={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$n={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$n={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$o={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$o={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$o={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$n={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$n={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$n={leftNavButtonAriaLabel:"previous page {current} of {total}",rightNavButtonAriaLabel:"next page {current} of {total}"};var meetingConferencePhoneInfo$n={meetingConferencePhoneInfoModalTitle:"Join call from your phone",meetingConferencePhoneInfoModalDialIn:"Dial number",meetingConferencePhoneInfoModalMeetingId:"Enter meeting ID",meetingConferencePhoneInfoModalWait:"Wait to be admitted by organizer",meetingConferencePhoneInfoModalNoPhoneAvailable:"No phone available",meetingConferencePhoneInfoModalTollGeoData:"{country}, {city}",meetingConferencePhoneInfoModalTollFree:"(Toll-free)",meetingConferencePhoneInfoModalToll:"(Toll)"};var IncomingCallNotification$o={incomingCallNotificationPlaceholderId:"Unknown User",incomingCallNotificationPlaceholderAlert:"{callerName} is calling",incomingCallNoticicationAcceptWithAudioAriaLabel:"Accept with audio",incomingCallNoticicationAcceptWithVideoAriaLabel:"Accept with video",incomingCallNoticicationRejectAriaLabel:"Reject",incomingCallNotificationAcceptButtonLabel:"Accept",incomingCallNotificationRejectButtonLabel:"Decline",incomingCallNotificationAccceptWithVideoButtonLabel:"Accept with Video",incomingCallNotificationDismissButtonAriaLabel:"Dismiss"};var rttDisclosureBanner$n={bannerTitle:"RTT",bannerContent:"RTT (real-time text) is enabled for all participants for the entire duration of the meeting.",bannerLinkLabel:"Learn more"};var en_US$1 = {participantItem:participantItem$n,ParticipantList:ParticipantList$o,typingIndicator:typingIndicator$n,sendBox:sendBox$n,richTextSendBox:richTextSendBox$n,rttModal:rttModal$n,mentionPopover:mentionPopover$n,imageOverlay:imageOverlay$n,messageStatusIndicator:messageStatusIndicator$n,endCallButton:endCallButton$n,cameraButton:cameraButton$n,microphoneButton:microphoneButton$n,devicesButton:devicesButton$n,participantsButton:participantsButton$n,screenShareButton:screenShareButton$n,raiseHandButton:raiseHandButton$n,reactionButton:reactionButton$n,rtt:rtt$n,messageThread:messageThread$n,errorBar:errorBar$n,notificationStack:notificationStack$n,videoGallery:videoGallery$n,dialpad:dialpad$n,holdButton:holdButton$n,videoTile:videoTile$n,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$n,CameraSitePermissionsRequest:CameraSitePermissionsRequest$n,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$n,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$n,CameraSitePermissionsCheck:CameraSitePermissionsCheck$n,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$n,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$n,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$n,CameraSitePermissionsDenied:CameraSitePermissionsDenied$n,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$n,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$n,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$n,UnsupportedBrowser:UnsupportedBrowser$o,UnsupportedBrowserVersion:UnsupportedBrowserVersion$o,UnsupportedOperatingSystem:UnsupportedOperatingSystem$o,BrowserPermissionDenied:BrowserPermissionDenied$n,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$n,verticalGallery:verticalGallery$n,meetingConferencePhoneInfo:meetingConferencePhoneInfo$n,IncomingCallNotification:IncomingCallNotification$o,rttDisclosureBanner:rttDisclosureBanner$n};
7174
+ var participantItem$n={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",handRaisedIconLabel:"Hand raised - Position {position}",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",participantItemAriaLabel:"{displayName}, {handRaisedState}, {mutedState}, {sharingState}, {connectionState}",participantItemWithMoreOptionsAriaLabel:"{displayName}, {handRaisedState}, {mutedState}, {sharingState}, {connectionState}, More Options",attendeeRole:"Attendee"};var ParticipantList$o={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$n={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$n={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$n={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"File is uploading, please wait.",imageUploadsPendingError:"Image is uploading, please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarAriaLabel:"Message Formatting Toolbar",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var rttModal$n={rttModalAriaLabel:"Turn on RTT Modal",rttModalTitle:"Turn on RTT?",rttModalText:"Real-time text (RTT) will be turned on for everyone in the meeting.",rttConfirmButtonLabel:"Turn on",rttCancelButtonLabel:"Cancel",rttCloseModalButtonAriaLabel:"Close RTT Modal"};var mentionPopover$n={mentionPopoverHeader:"Suggestions"};var imageOverlay$n={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$n={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$n={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$n={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera",offSplitButtonAriaLabel:"Turn on camera",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects",cameraButtonAriaDescription:"camera options"};var microphoneButton$n={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute mic",offSplitButtonAriaLabel:"Unmute mic",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute mic",onSplitButtonMicrophonePrimaryAction:"Mute mic",microphonePrimaryActionSplitButtonTitle:"Use microphone",microphoneAriaDescription:"Audio options",deepNoiseSuppressionTitle:"Noise suppression",deepNoiseSuppressionOnAnnouncement:"Deep noise suppression has been turned on",deepNoiseSuppressionOffAnnouncement:"Deep noise suppression has been turned off"};var devicesButton$n={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$n={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$n={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$n={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$n={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var rtt$n={isTypingText:"RTT typing"};var messageThread$n={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{status} {author} said {message}",messageContentMineAriaText:"{status} You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentUploadsPendingError:"File is uploading, please wait.",imageUploadsPendingError:"Image is uploading, please wait.",richTextNewBulletedListItemAnnouncement:"Bullet, new line",richTextNewNumberedListItemAnnouncement:"{0}, new line",richTextBulletedListAppliedAnnouncement:"Bulleted list applied",richTextNumberedListAppliedAnnouncement:"Numbered list applied"};var errorBar$n={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",teamsMeetingCallNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted.",mutedByRemoteParticipant:"You were muted by another participant."};var notificationStack$n={callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",dismissButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",dismissButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",dismissButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",dismissButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",dismissButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",dismissButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",dismissButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",dismissButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close"},teamsMeetingCallNetworkQualityLow:{title:"Network quality is low.",dismissButtonAriaLabel:"Close",message:"Join this call from your phone for better sound. You can continue viewing the meeting on this device.",primaryButtonLabel:"Join by Phone"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",dismissButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",dismissButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"Close"},callMicrophoneAccessDeniedSafari:{title:"Unable to access microphone",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",dismissButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",dismissButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",dismissButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",dismissButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",dismissButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",dismissButtonAriaLabel:"Close"},callCameraAccessDeniedSafari:{title:"Unable to access camera",message:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",dismissButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",dismissButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",dismissButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",dismissButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",dismissButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",dismissButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",dismissButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",dismissButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",dismissButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",dismissButtonAriaLabel:"Close"},mutedByRemoteParticipant:{title:"You were muted by another participant.",dismissButtonAriaLabel:"Close"},recordingStarted:{title:"Recording has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},transcriptionStarted:{title:"Transcription has started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingStopped:{title:"Recording is being saved.",message:"Recording has stopped.",dismissButtonAriaLabel:"Close"},transcriptionStopped:{title:"Transcription is being saved.",message:"Transcription has stopped.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStarted:{title:"Recording and transcription have started.",message:"By joining, you are giving consent for this meeting to be transcribed.",dismissButtonAriaLabel:"Close"},recordingAndTranscriptionStopped:{title:"Recording and transcription are being saved.",message:"Recording and transcription have stopped.",dismissButtonAriaLabel:"Close"},recordingStoppedStillTranscribing:{title:"Recording has stopped.",message:"You are now only transcribing this meeting.",dismissButtonAriaLabel:"Close"},transcriptionStoppedStillRecording:{title:"Transcription has stopped.",message:"You are now only recording this meeting.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomOpened:{title:"We'll move you to your assigned room in 5 seconds.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomChanged:{title:"Your breakout room has changed",message:"We'll move you to your assigned room in 5 seconds.",dismissButtonAriaLabel:"Close"},assignedBreakoutRoomOpenedPromptJoin:{title:"Join breakout room?",message:"You've been assigned to a breakout room.",dismissButtonAriaLabel:"Close",primaryButtonLabel:"Join room",secondaryButtonLabel:"Later"},breakoutRoomJoined:{title:"You have joined a breakout room.",dismissButtonAriaLabel:"Close"},breakoutRoomClosingSoon:{title:"Room time limit about to expire.",message:"This room will close in 30 seconds",dismissButtonAriaLabel:"Close"}};var videoGallery$n={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localScreenShareLoadingMessage:"Loading your screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoMovementAriaLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee",muteParticipantMenuItemLabel:"Mute",waitingScreenText:"Waiting for others to join"};var dialpad$n={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$n={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$n={participantStateRinging:"Calling...",participantReconnecting:"Reconnecting...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options {displayName} {isMuted} {isHandRaised} {state} {isSpeaking}",moreOptionsParticipantMutedStateMutedAriaLabel:"muted",moreOptionsParticipantMutedStateUnmutedAriaLabel:"unmuted",moreOptionsParticipantHandRaisedAriaLabel:"Hand raised",moreOptionsParticipantIsSpeakingAriaLabel:"Speaking"};var CameraAndMicrophoneSitePermissionsRequest$n={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$n={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$n={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$n={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$n={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$n={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$n={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$n={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$n={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$n={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$n={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$n={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$o={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$o={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$o={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$n={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$n={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$n={leftNavButtonAriaLabel:"previous page {current} of {total}",rightNavButtonAriaLabel:"next page {current} of {total}"};var meetingConferencePhoneInfo$n={meetingConferencePhoneInfoModalTitle:"Join call from your phone",meetingConferencePhoneInfoModalDialIn:"Dial number",meetingConferencePhoneInfoModalMeetingId:"Enter meeting ID",meetingConferencePhoneInfoModalWait:"Wait to be admitted by organizer",meetingConferencePhoneInfoModalNoPhoneAvailable:"No phone available",meetingConferencePhoneInfoModalTollGeoData:"{country}, {city}",meetingConferencePhoneInfoModalTollFree:"(Toll-free)",meetingConferencePhoneInfoModalToll:"(Toll)"};var IncomingCallNotification$o={incomingCallNotificationPlaceholderId:"Unknown User",incomingCallNotificationPlaceholderAlert:"{callerName} is calling",incomingCallNoticicationAcceptWithAudioAriaLabel:"Accept with audio",incomingCallNoticicationAcceptWithVideoAriaLabel:"Accept with video",incomingCallNoticicationRejectAriaLabel:"Reject",incomingCallNotificationAcceptButtonLabel:"Accept",incomingCallNotificationRejectButtonLabel:"Decline",incomingCallNotificationAccceptWithVideoButtonLabel:"Accept with Video",incomingCallNotificationDismissButtonAriaLabel:"Dismiss"};var rttDisclosureBanner$n={bannerTitle:"RTT",bannerContent:"RTT (real-time text) is enabled for all participants for the entire duration of the meeting.",bannerLinkLabel:"Learn more"};var en_US$1 = {participantItem:participantItem$n,ParticipantList:ParticipantList$o,typingIndicator:typingIndicator$n,sendBox:sendBox$n,richTextSendBox:richTextSendBox$n,rttModal:rttModal$n,mentionPopover:mentionPopover$n,imageOverlay:imageOverlay$n,messageStatusIndicator:messageStatusIndicator$n,endCallButton:endCallButton$n,cameraButton:cameraButton$n,microphoneButton:microphoneButton$n,devicesButton:devicesButton$n,participantsButton:participantsButton$n,screenShareButton:screenShareButton$n,raiseHandButton:raiseHandButton$n,reactionButton:reactionButton$n,rtt:rtt$n,messageThread:messageThread$n,errorBar:errorBar$n,notificationStack:notificationStack$n,videoGallery:videoGallery$n,dialpad:dialpad$n,holdButton:holdButton$n,videoTile:videoTile$n,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$n,CameraSitePermissionsRequest:CameraSitePermissionsRequest$n,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$n,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$n,CameraSitePermissionsCheck:CameraSitePermissionsCheck$n,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$n,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$n,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$n,CameraSitePermissionsDenied:CameraSitePermissionsDenied$n,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$n,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$n,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$n,UnsupportedBrowser:UnsupportedBrowser$o,UnsupportedBrowserVersion:UnsupportedBrowserVersion$o,UnsupportedOperatingSystem:UnsupportedOperatingSystem$o,BrowserPermissionDenied:BrowserPermissionDenied$n,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$n,verticalGallery:verticalGallery$n,meetingConferencePhoneInfo:meetingConferencePhoneInfo$n,IncomingCallNotification:IncomingCallNotification$o,rttDisclosureBanner:rttDisclosureBanner$n};
7169
7175
 
7170
7176
  // Copyright (c) Microsoft Corporation.
7171
7177
  // Licensed under the MIT License.
@@ -9660,7 +9666,7 @@ const _MentionPopover = (props) => {
9660
9666
 
9661
9667
  // Copyright (c) Microsoft Corporation.
9662
9668
  // Licensed under the MIT License.
9663
- var __awaiter$N = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
9669
+ var __awaiter$O = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
9664
9670
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9665
9671
  return new (P || (P = Promise))(function (resolve, reject) {
9666
9672
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -9846,7 +9852,7 @@ const TextFieldWithMention = (props) => {
9846
9852
  onSuggestionSelected,
9847
9853
  updateMentionSuggestions
9848
9854
  ]);
9849
- const debouncedQueryUpdate = useDebounce.useDebouncedCallback((query) => __awaiter$N(void 0, void 0, void 0, function* () {
9855
+ const debouncedQueryUpdate = useDebounce.useDebouncedCallback((query) => __awaiter$O(void 0, void 0, void 0, function* () {
9850
9856
  var _a;
9851
9857
  let suggestions = (_a = (yield (mentionLookupOptions === null || mentionLookupOptions === void 0 ? void 0 : mentionLookupOptions.onQueryUpdated(query)))) !== null && _a !== void 0 ? _a : [];
9852
9858
  suggestions = suggestions.filter((suggestion) => suggestion.displayText.trim() !== '');
@@ -10023,7 +10029,7 @@ const TextFieldWithMention = (props) => {
10023
10029
  });
10024
10030
  }
10025
10031
  }, [updateSelectionIndexesWithMentionIfNeeded, setSelectionStartValue, setSelectionEndValue]);
10026
- const handleOnChange = React.useCallback((_b) => __awaiter$N(void 0, [_b], void 0, function* ({ currentSelectionEnd, currentSelectionStart, currentTriggerStartIndex, event, htmlTextValue, inputTextValue, previousSelectionEnd, previousSelectionStart, tagsValue, updatedValue }) {
10032
+ const handleOnChange = React.useCallback((_b) => __awaiter$O(void 0, [_b], void 0, function* ({ currentSelectionEnd, currentSelectionStart, currentTriggerStartIndex, event, htmlTextValue, inputTextValue, previousSelectionEnd, previousSelectionStart, tagsValue, updatedValue }) {
10027
10033
  var _c;
10028
10034
  debouncedQueryUpdate.cancel();
10029
10035
  if (event.currentTarget === null) {
@@ -10575,7 +10581,7 @@ const ATTACHMENT_CARD_MIN_PROGRESS = 0.05;
10575
10581
 
10576
10582
  // Copyright (c) Microsoft Corporation.
10577
10583
  // Licensed under the MIT License.
10578
- var __awaiter$M = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
10584
+ var __awaiter$N = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
10579
10585
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10580
10586
  return new (P || (P = Promise))(function (resolve, reject) {
10581
10587
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -10664,7 +10670,7 @@ const MappedMenuItems = (menuActions, attachment, handleOnClickError) => {
10664
10670
  React.createElement(reactComponents.MenuTrigger, null,
10665
10671
  React.createElement(reactComponents.ToolbarButton, { "aria-label": localeStrings.attachmentMoreMenu, role: "button", icon: React.createElement(react.Icon, { iconName: "AttachmentMoreMenu" }) }))),
10666
10672
  React.createElement(reactComponents.MenuPopover, null,
10667
- React.createElement(reactComponents.MenuList, null, menuActions.map((menuItem, index) => (React.createElement(reactComponents.MenuItem, { "aria-label": menuItem.name, key: index, icon: menuItem.icon, onClick: () => __awaiter$M(void 0, void 0, void 0, function* () {
10673
+ React.createElement(reactComponents.MenuList, null, menuActions.map((menuItem, index) => (React.createElement(reactComponents.MenuItem, { "aria-label": menuItem.name, key: index, icon: menuItem.icon, onClick: () => __awaiter$N(void 0, void 0, void 0, function* () {
10668
10674
  try {
10669
10675
  yield menuItem.onClick(attachment);
10670
10676
  }
@@ -10799,7 +10805,7 @@ const _AttachmentUploadCards = (props) => {
10799
10805
 
10800
10806
  // Copyright (c) Microsoft Corporation.
10801
10807
  // Licensed under the MIT License.
10802
- var __awaiter$L = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
10808
+ var __awaiter$M = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
10803
10809
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10804
10810
  return new (P || (P = Promise))(function (resolve, reject) {
10805
10811
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -10848,7 +10854,7 @@ const hasInlineImageContent = (content) => {
10848
10854
  *
10849
10855
  * @returns The updated message content.
10850
10856
  */
10851
- const updateStylesOfInlineImages = (message, initialInlineImages) => __awaiter$L(void 0, void 0, void 0, function* () {
10857
+ const updateStylesOfInlineImages = (message, initialInlineImages) => __awaiter$M(void 0, void 0, void 0, function* () {
10852
10858
  if (message === '') {
10853
10859
  return message;
10854
10860
  }
@@ -10940,7 +10946,7 @@ const toAttachmentMetadata = (attachmentsWithProgress) => {
10940
10946
  /**
10941
10947
  * @internal
10942
10948
  */
10943
- const modifyInlineImagesInContentString = (content, initialInlineImages, onCompleted) => __awaiter$L(void 0, void 0, void 0, function* () {
10949
+ const modifyInlineImagesInContentString = (content, initialInlineImages, onCompleted) => __awaiter$M(void 0, void 0, void 0, function* () {
10944
10950
  let newContent = content;
10945
10951
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
10946
10952
  try {
@@ -11005,15 +11011,58 @@ const getContentWithUpdatedInlineImagesInfo = (content, inlineImageWithProgress)
11005
11011
  * @private
11006
11012
  */
11007
11013
  const grey = {
11014
+ '0': '#000000',
11015
+ '2': '#050505',
11016
+ '4': '#0a0a0a',
11017
+ '6': '#0f0f0f',
11008
11018
  '8': '#141414',
11019
+ '10': '#1a1a1a',
11020
+ '12': '#1f1f1f',
11021
+ '14': '#242424',
11022
+ '16': '#292929',
11009
11023
  '18': '#2e2e2e',
11010
11024
  '20': '#333333',
11011
11025
  '22': '#383838',
11012
11026
  '24': '#3d3d3d',
11027
+ '26': '#424242',
11028
+ '28': '#474747',
11029
+ '30': '#4d4d4d',
11030
+ '32': '#525252',
11031
+ '34': '#575757',
11032
+ '36': '#5c5c5c',
11033
+ '38': '#616161',
11034
+ '40': '#666666',
11035
+ '42': '#6b6b6b',
11036
+ '44': '#707070',
11037
+ '46': '#757575',
11038
+ '48': '#7a7a7a',
11039
+ '50': '#808080',
11040
+ '52': '#858585',
11041
+ '54': '#8a8a8a',
11042
+ '56': '#8f8f8f',
11043
+ '58': '#949494',
11044
+ '60': '#999999',
11045
+ '62': '#9e9e9e',
11046
+ '64': '#a3a3a3',
11047
+ '66': '#a8a8a8',
11048
+ '68': '#adadad',
11049
+ '70': '#b3b3b3',
11050
+ '72': '#b8b8b8',
11051
+ '74': '#bdbdbd',
11052
+ '76': '#c2c2c2',
11053
+ '78': '#c7c7c7',
11054
+ '80': '#cccccc',
11055
+ '82': '#d1d1d1',
11056
+ '84': '#d6d6d6',
11057
+ '86': '#dbdbdb',
11058
+ '88': '#e0e0e0',
11059
+ '90': '#e6e6e6',
11013
11060
  '92': '#ebebeb',
11014
11061
  '94': '#f0f0f0',
11015
11062
  '96': '#f5f5f5',
11016
- '98': '#fafafa'};
11063
+ '98': '#fafafa',
11064
+ '100': '#ffffff'
11065
+ };
11017
11066
  /**
11018
11067
  * @private
11019
11068
  */
@@ -11021,9 +11070,14 @@ const whiteAlpha = {
11021
11070
  '5': 'rgba(255, 255, 255, 0.05)',
11022
11071
  '10': 'rgba(255, 255, 255, 0.1)',
11023
11072
  '20': 'rgba(255, 255, 255, 0.2)',
11073
+ '30': 'rgba(255, 255, 255, 0.3)',
11024
11074
  '40': 'rgba(255, 255, 255, 0.4)',
11025
11075
  '50': 'rgba(255, 255, 255, 0.5)',
11026
- '80': 'rgba(255, 255, 255, 0.8)'};
11076
+ '60': 'rgba(255, 255, 255, 0.6)',
11077
+ '70': 'rgba(255, 255, 255, 0.7)',
11078
+ '80': 'rgba(255, 255, 255, 0.8)',
11079
+ '90': 'rgba(255, 255, 255, 0.9)'
11080
+ };
11027
11081
  /**
11028
11082
  * @private
11029
11083
  */
@@ -11033,17 +11087,42 @@ const blackAlpha = {
11033
11087
  '20': 'rgba(0, 0, 0, 0.2)',
11034
11088
  '30': 'rgba(0, 0, 0, 0.3)',
11035
11089
  '40': 'rgba(0, 0, 0, 0.4)',
11036
- '50': 'rgba(0, 0, 0, 0.5)'};
11090
+ '50': 'rgba(0, 0, 0, 0.5)',
11091
+ '60': 'rgba(0, 0, 0, 0.6)',
11092
+ '70': 'rgba(0, 0, 0, 0.7)',
11093
+ '80': 'rgba(0, 0, 0, 0.8)',
11094
+ '90': 'rgba(0, 0, 0, 0.9)'
11095
+ };
11037
11096
  /**
11038
11097
  * @private
11039
11098
  */
11040
11099
  const grey10Alpha = {
11041
- '50': 'rgba(26, 26, 26, 0.5)'};
11100
+ '5': 'rgba(26, 26, 26, 0.05)',
11101
+ '10': 'rgba(26, 26, 26, 0.1)',
11102
+ '20': 'rgba(26, 26, 26, 0.2)',
11103
+ '30': 'rgba(26, 26, 26, 0.3)',
11104
+ '40': 'rgba(26, 26, 26, 0.4)',
11105
+ '50': 'rgba(26, 26, 26, 0.5)',
11106
+ '60': 'rgba(26, 26, 26, 0.6)',
11107
+ '70': 'rgba(26, 26, 26, 0.7)',
11108
+ '80': 'rgba(26, 26, 26, 0.8)',
11109
+ '90': 'rgba(26, 26, 26, 0.9)'
11110
+ };
11042
11111
  /**
11043
11112
  * @private
11044
11113
  */
11045
11114
  const grey12Alpha = {
11046
- '70': 'rgba(31, 31, 31, 0.7)'};
11115
+ '5': 'rgba(31, 31, 31, 0.05)',
11116
+ '10': 'rgba(31, 31, 31, 0.1)',
11117
+ '20': 'rgba(31, 31, 31, 0.2)',
11118
+ '30': 'rgba(31, 31, 31, 0.3)',
11119
+ '40': 'rgba(31, 31, 31, 0.4)',
11120
+ '50': 'rgba(31, 31, 31, 0.5)',
11121
+ '60': 'rgba(31, 31, 31, 0.6)',
11122
+ '70': 'rgba(31, 31, 31, 0.7)',
11123
+ '80': 'rgba(31, 31, 31, 0.8)',
11124
+ '90': 'rgba(31, 31, 31, 0.9)'
11125
+ };
11047
11126
 
11048
11127
  // Copyright (c) Microsoft Corporation.
11049
11128
  // Licensed under the MIT License.
@@ -12145,7 +12224,7 @@ const removeSingleLocalBlob = (currentLocalBlobMap, imageId) => {
12145
12224
  }
12146
12225
  };
12147
12226
 
12148
- var __awaiter$K = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12227
+ var __awaiter$L = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
12149
12228
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
12150
12229
  return new (P || (P = Promise))(function (resolve, reject) {
12151
12230
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -12200,7 +12279,7 @@ class CopyPastePlugin {
12200
12279
  onPluginEvent(event) {
12201
12280
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
12202
12281
  if (event.eventType === PluginEventType.BeforeCutCopy) {
12203
- event.clonedRoot.querySelectorAll('img').forEach((image) => __awaiter$K(this, void 0, void 0, function* () {
12282
+ event.clonedRoot.querySelectorAll('img').forEach((image) => __awaiter$L(this, void 0, void 0, function* () {
12204
12283
  if (image.src.startsWith('blob:')) {
12205
12284
  const base64Data = this.imageBase64DataMap[image.id];
12206
12285
  image.src = base64Data || image.src;
@@ -15681,7 +15760,7 @@ const MessageBubble$1 = (props) => {
15681
15760
  // so when focus moves within actionMenu, the `focus` state in chatMessage remains true, and keeps actionMenu visible
15682
15761
  setFocused(true);
15683
15762
  }
15684
- }, "data-testid": "chat-composite-message", author: React.createElement(react.Text, { className: chatMessageDateStyle(theme) }, message.senderDisplayName), timestamp: React.createElement(react.Text, { className: props.message.status === 'failed' ? chatMessageDateFailedStyle(theme) : chatMessageDateStyle(theme), "data-ui-id": ids.messageTimestamp }, formattedTimestamp), details: getMessageDetails(), actions: {
15763
+ }, "data-testid": "chat-composite-message", author: React.createElement(react.Text, { className: chatMessageDateStyle(theme) }, message.senderDisplayName), timestamp: React.createElement(react.Text, { className: props.message.status === 'failed' ? chatMessageDateFailedStyle(theme) : chatMessageDateStyle(theme), "data-testid": ids.messageTimestamp }, formattedTimestamp), details: getMessageDetails(), actions: {
15685
15764
  children: actionMenuProps === null || actionMenuProps === void 0 ? void 0 : actionMenuProps.children,
15686
15765
  className: reactComponents.mergeClasses(chatMyMessageStyles.menu,
15687
15766
  // Make actions menu visible when the message is focused or the flyout is shown
@@ -15840,7 +15919,7 @@ class _ErrorBoundary extends React.Component {
15840
15919
  // Copyright (c) Microsoft Corporation.
15841
15920
  // Licensed under the MIT License.
15842
15921
  /* @conditional-compile-remove(rich-text-editor) */
15843
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-Dw8hzKEb.js'); }));
15922
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CIhjlFQw.js'); }));
15844
15923
  /**
15845
15924
  * @private
15846
15925
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -15848,7 +15927,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
15848
15927
  *
15849
15928
  * @conditional-compile-remove(rich-text-editor)
15850
15929
  */
15851
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-Dw8hzKEb.js'); });
15930
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CIhjlFQw.js'); });
15852
15931
  /**
15853
15932
  * @private
15854
15933
  */
@@ -15867,7 +15946,7 @@ const ChatMessageComponentAsEditBoxPicker = (props) => {
15867
15946
 
15868
15947
  // Copyright (c) Microsoft Corporation.
15869
15948
  // Licensed under the MIT License.
15870
- var __awaiter$J = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
15949
+ var __awaiter$K = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
15871
15950
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15872
15951
  return new (P || (P = Promise))(function (resolve, reject) {
15873
15952
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -15923,7 +16002,7 @@ const ChatMyMessageComponent = (props) => {
15923
16002
  function (text,
15924
16003
  /* @conditional-compile-remove(file-sharing-acs) */
15925
16004
  attachments) {
15926
- return __awaiter$J(this, void 0, void 0, function* () {
16005
+ return __awaiter$K(this, void 0, void 0, function* () {
15927
16006
  /* @conditional-compile-remove(file-sharing-acs) */
15928
16007
  if (`attachments` in message && attachments) {
15929
16008
  message.attachments = attachments;
@@ -16151,7 +16230,7 @@ const MessageBubble = (props) => {
16151
16230
  }, author: React.createElement(react.Text, { className: chatMessageAuthorStyle }, message.senderDisplayName), body: {
16152
16231
  className: chatItemMessageContainerClassName,
16153
16232
  style: Object.assign({}, createStyleFromV8Style(messageContainerStyle))
16154
- }, "data-testid": "chat-composite-message", timestamp: React.createElement(react.Text, { className: props.message.status === 'failed' ? chatMessageDateFailedStyle(theme) : chatMessageDateStyle(theme), "data-ui-id": ids.messageTimestamp }, formattedTimestamp), details: getMessageDetails() }, getContent()))));
16233
+ }, "data-testid": "chat-composite-message", timestamp: React.createElement(react.Text, { className: props.message.status === 'failed' ? chatMessageDateFailedStyle(theme) : chatMessageDateStyle(theme), "data-testid": ids.messageTimestamp }, formattedTimestamp), details: getMessageDetails() }, getContent()))));
16155
16234
  return chatMessage;
16156
16235
  };
16157
16236
  /** @private */
@@ -16320,7 +16399,7 @@ const fluentChatComponent = (props) => {
16320
16399
 
16321
16400
  // Copyright (c) Microsoft Corporation.
16322
16401
  // Licensed under the MIT License.
16323
- var __awaiter$I = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16402
+ var __awaiter$J = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
16324
16403
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16325
16404
  return new (P || (P = Promise))(function (resolve, reject) {
16326
16405
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -16516,7 +16595,7 @@ const MessageThreadWrapper = (props) => {
16516
16595
  loadChatMessageComponentAsRichTextEditBox();
16517
16596
  }
16518
16597
  }, [richTextEditorOptions]);
16519
- const onDeleteMessageCallback = React.useCallback((messageId) => __awaiter$I(void 0, void 0, void 0, function* () {
16598
+ const onDeleteMessageCallback = React.useCallback((messageId) => __awaiter$J(void 0, void 0, void 0, function* () {
16520
16599
  if (!onDeleteMessage) {
16521
16600
  return;
16522
16601
  }
@@ -16597,7 +16676,7 @@ const MessageThreadWrapper = (props) => {
16597
16676
  */
16598
16677
  const clientHeight = (_a = chatThreadRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight;
16599
16678
  // we try to only send those message status if user is scrolled to the bottom.
16600
- const sendMessageStatusIfAtBottom = React.useCallback(() => __awaiter$I(void 0, void 0, void 0, function* () {
16679
+ const sendMessageStatusIfAtBottom = React.useCallback(() => __awaiter$J(void 0, void 0, void 0, function* () {
16601
16680
  if (!isAtBottomOfScrollRef.current ||
16602
16681
  !document.hasFocus() ||
16603
16682
  !messagesRef.current ||
@@ -16648,7 +16727,7 @@ const MessageThreadWrapper = (props) => {
16648
16727
  setIsAtBottomOfScrollRef(atBottom);
16649
16728
  }, [scrollToBottom, sendMessageStatusIfAtBottom]);
16650
16729
  // Infinite scrolling + threadInitialize function
16651
- const fetchNewMessageWhenAtTop = React.useCallback(() => __awaiter$I(void 0, void 0, void 0, function* () {
16730
+ const fetchNewMessageWhenAtTop = React.useCallback(() => __awaiter$J(void 0, void 0, void 0, function* () {
16652
16731
  if (!isLoadingChatMessagesRef.current) {
16653
16732
  if (onLoadPreviousChatMessages) {
16654
16733
  isLoadingChatMessagesRef.current = true;
@@ -17077,6 +17156,7 @@ const meContainerStyle = {
17077
17156
  * @public
17078
17157
  */
17079
17158
  const ParticipantItem = (props) => {
17159
+ var _a, _b, _c;
17080
17160
  const { userId, displayName, onRenderAvatar, menuItems, onRenderIcon, presence, styles, me, onClick, showParticipantOverflowTooltip } = props;
17081
17161
  const [itemHovered, setItemHovered] = React.useState(false);
17082
17162
  const [menuHidden, setMenuHidden] = React.useState(true);
@@ -17084,10 +17164,13 @@ const ParticipantItem = (props) => {
17084
17164
  const theme = useTheme();
17085
17165
  const localeStrings = useLocale$1().strings.participantItem;
17086
17166
  const ids = useIdentifiers();
17087
- const uniqueId = reactHooks.useId();
17167
+ const participantItemId = reactHooks.useId();
17168
+ const participantItemFlyoutId = reactHooks.useId();
17169
+ const hasFlyout = !!(menuItems && (menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) > 0);
17170
+ const flyoutShowing = hasFlyout && menuHidden;
17088
17171
  const strings = Object.assign(Object.assign({}, localeStrings), props.strings);
17089
- const participantStateString = participantStateStringTrampoline(props, strings);
17090
- const showMenuIcon = !participantStateString && (itemHovered || !menuHidden) && menuItems && (menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) > 0;
17172
+ const participantStateString = formatParticipantStateString(props, strings);
17173
+ const showMenuIcon = !participantStateString && (itemHovered || !menuHidden) && hasFlyout;
17091
17174
  // For 'me' show empty name so avatar will get 'Person' icon, when there is no name
17092
17175
  const meAvatarText = (displayName === null || displayName === void 0 ? void 0 : displayName.trim()) || '';
17093
17176
  const avatarOptions = {
@@ -17111,7 +17194,7 @@ const ParticipantItem = (props) => {
17111
17194
  };
17112
17195
  const menuButton = React.useMemo(() => (React.createElement(react.Stack, { horizontal: true, horizontalAlign: "end", className: react.mergeStyles(menuButtonContainerStyle, { color: theme.palette.neutralPrimary }), title: strings.menuTitle, "data-ui-id": ids.participantItemMenuButton },
17113
17196
  React.createElement(react.Icon, { iconName: "ParticipantItemOptionsHovered", className: react.mergeStyles(iconStyles$3, !showMenuIcon ? displayNoneStyle : {}) }))), [theme.palette.neutralPrimary, strings.menuTitle, ids.participantItemMenuButton, showMenuIcon]);
17114
- return (React.createElement("div", { ref: containerRef, role: 'menuitem', "aria-expanded": !me ? !menuHidden : undefined, "aria-disabled": (menuItems && menuItems.length > 0) || props.onClick ? false : true, "data-is-focusable": true, "data-ui-id": "participant-item", className: react.mergeStyles(participantItemContainerStyle({ clickable: !!menuItems && menuItems.length > 0 }, theme), styles === null || styles === void 0 ? void 0 : styles.root), onMouseEnter: () => setItemHovered(true), onMouseLeave: () => setItemHovered(false), onClick: () => {
17197
+ return (React.createElement("div", { ref: containerRef, role: 'menuitem', id: participantItemId, "aria-label": (_b = (hasFlyout ? (_a = props.strings) === null || _a === void 0 ? void 0 : _a.participantItemWithMoreOptionsAriaLabel : undefined)) !== null && _b !== void 0 ? _b : (_c = props.strings) === null || _c === void 0 ? void 0 : _c.participantItemAriaLabel, "aria-labelledby": `${props.ariaLabelledBy} ${participantItemId}`, "aria-expanded": flyoutShowing, "aria-disabled": hasFlyout || props.onClick ? false : true, "aria-haspopup": hasFlyout ? true : undefined, "aria-controls": participantItemFlyoutId, "data-is-focusable": hasFlyout, "data-ui-id": "participant-item", className: react.mergeStyles(participantItemContainerStyle({ clickable: hasFlyout }, theme), styles === null || styles === void 0 ? void 0 : styles.root), onMouseEnter: () => setItemHovered(true), onMouseLeave: () => setItemHovered(false), onClick: () => {
17115
17198
  if (!participantStateString) {
17116
17199
  setItemHovered(true);
17117
17200
  setMenuHidden(false);
@@ -17120,23 +17203,24 @@ const ParticipantItem = (props) => {
17120
17203
  if (!menuHidden) {
17121
17204
  onDismissMenu();
17122
17205
  }
17123
- }, tabIndex: 0 },
17206
+ }, tabIndex: hasFlyout ? 0 : undefined },
17124
17207
  React.createElement(react.Stack, { horizontal: true, className: react.mergeStyles({
17125
17208
  flexGrow: 1,
17126
17209
  maxWidth: '100%',
17127
17210
  alignItems: 'center'
17128
- }), id: uniqueId, "aria-labelledby": `${props.ariaLabelledBy} ${uniqueId}` },
17211
+ }) },
17129
17212
  avatar,
17130
17213
  me && React.createElement(react.Text, { className: meTextStyle }, strings.isMeText),
17131
17214
  React.createElement(react.Stack, { horizontal: true, className: react.mergeStyles(infoContainerStyle) },
17132
17215
  !showMenuIcon && onRenderIcon && onRenderIcon(props),
17133
- !me && participantStateString ? (React.createElement(react.Text, { "data-ui-id": "participant-item-state-string", className: react.mergeStyles(participantStateStringStyles$1) }, participantStateString)) : (React.createElement(React.Fragment, null, menuItems && menuItems.length > 0 && (React.createElement(React.Fragment, null,
17216
+ !me && participantStateString ? (React.createElement(react.Text, { "data-ui-id": "participant-item-state-string", className: react.mergeStyles(participantStateStringStyles$1) }, participantStateString)) : (React.createElement(React.Fragment, null, hasFlyout && (React.createElement(React.Fragment, null,
17134
17217
  menuButton,
17135
- React.createElement(react.ContextualMenu, { items: menuItems, hidden: menuHidden, target: containerRef, onItemClick: onDismissMenu, onDismiss: onDismissMenu, directionalHint: react.DirectionalHint.bottomRightEdge, className: contextualMenuStyle, calloutProps: {
17218
+ React.createElement(react.ContextualMenu, { id: participantItemFlyoutId, items: menuItems, hidden: menuHidden, target: containerRef, onItemClick: onDismissMenu, onDismiss: onDismissMenu, directionalHint: react.DirectionalHint.bottomRightEdge, className: contextualMenuStyle, calloutProps: {
17136
17219
  preventDismissOnEvent: _preventDismissOnEvent
17137
17220
  } })))))))));
17138
17221
  };
17139
- const participantStateStringTrampoline = (props, strings) => {
17222
+ /** @private */
17223
+ const formatParticipantStateString = (props, strings) => {
17140
17224
  return props.participantState === 'EarlyMedia' || props.participantState === 'Ringing'
17141
17225
  ? strings === null || strings === void 0 ? void 0 : strings.participantStateRinging
17142
17226
  : props.participantState === 'Hold'
@@ -17398,6 +17482,7 @@ const iconStyles$2 = react.mergeStyles({
17398
17482
  // Copyright (c) Microsoft Corporation.
17399
17483
  // Licensed under the MIT License.
17400
17484
  const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvatar, createParticipantMenuItems, styles, onParticipantClick, showParticipantOverflowTooltip, participantAriaLabelledBy, theme, pinnedParticipants) => {
17485
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
17401
17486
  const callingParticipant = participant;
17402
17487
  let presence = undefined;
17403
17488
  if (callingParticipant) {
@@ -17436,7 +17521,21 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
17436
17521
  const onRenderAvatarWithRaiseHand = (callingParticipant === null || callingParticipant === void 0 ? void 0 : callingParticipant.raisedHand) && onRenderAvatar
17437
17522
  ? (userId, options, defaultOnRender) => onRenderAvatar(userId, Object.assign(Object.assign({}, options), { styles: { root: { border: callingPalette.raiseHandGold } } }), defaultOnRender)
17438
17523
  : onRenderAvatar;
17439
- return (React.createElement(ParticipantItem, { styles: styles, key: participant.userId, userId: participant.userId, displayName: displayName, me: myUserId ? participant.userId === myUserId : false, menuItems: menuItems, presence: presence, onRenderIcon: onRenderIcon, onRenderAvatar: onRenderAvatarWithRaiseHand, onClick: onParticipantClick ? () => onParticipantClick === null || onParticipantClick === void 0 ? void 0 : onParticipantClick(participant) : undefined, showParticipantOverflowTooltip: showParticipantOverflowTooltip, participantState: callingParticipant.state, ariaLabelledBy: participantAriaLabelledBy }));
17524
+ const ariaLabelTemplate = (_a = (menuItems && menuItems.length > 0 ? strings === null || strings === void 0 ? void 0 : strings.participantItemWithMoreOptionsAriaLabel : undefined)) !== null && _a !== void 0 ? _a : strings === null || strings === void 0 ? void 0 : strings.participantItemAriaLabel;
17525
+ const ariaLabel = _formatString(ariaLabelTemplate !== null && ariaLabelTemplate !== void 0 ? ariaLabelTemplate : '', {
17526
+ displayName: displayName !== null && displayName !== void 0 ? displayName : '',
17527
+ connectionState: (_b = formatParticipantStateString(callingParticipant, strings)) !== null && _b !== void 0 ? _b : '',
17528
+ mutedState: (_c = (callingParticipant.isMuted ? strings === null || strings === void 0 ? void 0 : strings.mutedIconLabel : undefined)) !== null && _c !== void 0 ? _c : '',
17529
+ sharingState: (_d = (callingParticipant.isScreenSharing ? strings === null || strings === void 0 ? void 0 : strings.sharingIconLabel : undefined)) !== null && _d !== void 0 ? _d : '',
17530
+ handRaisedState: (_k = (((_e = callingParticipant.raisedHand) === null || _e === void 0 ? void 0 : _e.raisedHandOrderPosition)
17531
+ ? _formatString((_f = strings === null || strings === void 0 ? void 0 : strings.handRaisedIconLabel) !== null && _f !== void 0 ? _f : '', {
17532
+ position: (_j = (_h = (_g = callingParticipant.raisedHand) === null || _g === void 0 ? void 0 : _g.raisedHandOrderPosition) === null || _h === void 0 ? void 0 : _h.toString()) !== null && _j !== void 0 ? _j : ''
17533
+ })
17534
+ : undefined)) !== null && _k !== void 0 ? _k : ''
17535
+ });
17536
+ return (React.createElement(ParticipantItem, { styles: styles, key: participant.userId, userId: participant.userId, displayName: displayName, me: myUserId ? participant.userId === myUserId : false, menuItems: menuItems, presence: presence, onRenderIcon: onRenderIcon, onRenderAvatar: onRenderAvatarWithRaiseHand, onClick: onParticipantClick ? () => onParticipantClick === null || onParticipantClick === void 0 ? void 0 : onParticipantClick(participant) : undefined, showParticipantOverflowTooltip: showParticipantOverflowTooltip, participantState: callingParticipant.state, ariaLabelledBy: participantAriaLabelledBy, strings: {
17537
+ participantItemAriaLabel: ariaLabel
17538
+ } }));
17440
17539
  };
17441
17540
  /**
17442
17541
  * Sort participants by raised hand order position
@@ -19752,7 +19851,7 @@ const localVideoTileContainerStyles = {
19752
19851
 
19753
19852
  // Copyright (c) Microsoft Corporation.
19754
19853
  // Licensed under the MIT License.
19755
- var __awaiter$H = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
19854
+ var __awaiter$I = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
19756
19855
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19757
19856
  return new (P || (P = Promise))(function (resolve, reject) {
19758
19857
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -19769,7 +19868,7 @@ const LocalVideoCameraCycleButton = (props) => {
19769
19868
  const { cameras, selectedCamera, onSelectCamera, label, ariaDescription, size } = props;
19770
19869
  const theme = react.useTheme();
19771
19870
  const [waitForCamera, setWaitForCamera] = React.useState(false);
19772
- const onChangeCameraClick = React.useCallback((device) => __awaiter$H(void 0, void 0, void 0, function* () {
19871
+ const onChangeCameraClick = React.useCallback((device) => __awaiter$I(void 0, void 0, void 0, function* () {
19773
19872
  // Throttle changing camera to prevent too many callbacks
19774
19873
  if (onSelectCamera) {
19775
19874
  setWaitForCamera(true);
@@ -22526,7 +22625,7 @@ const DevicesButton = (props) => {
22526
22625
 
22527
22626
  // Copyright (c) Microsoft Corporation.
22528
22627
  // Licensed under the MIT License.
22529
- var __awaiter$G = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
22628
+ var __awaiter$H = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
22530
22629
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
22531
22630
  return new (P || (P = Promise))(function (resolve, reject) {
22532
22631
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -22547,7 +22646,7 @@ const defaultLocalVideoViewOptions = {
22547
22646
  * @public
22548
22647
  */
22549
22648
  const CameraButton = (props) => {
22550
- var _a, _b, _c, _d, _e, _f, _g;
22649
+ var _a, _b, _c, _d, _e, _f, _g, _h;
22551
22650
  const { localVideoViewOptions, onToggleCamera, onSelectCamera } = props;
22552
22651
  const [waitForCamera, setWaitForCamera] = React.useState(false);
22553
22652
  const localeStrings = useLocale$1().strings.cameraButton;
@@ -22560,7 +22659,14 @@ const CameraButton = (props) => {
22560
22659
  strings.tooltipDisabledContent = strings.tooltipVideoLoadingContent;
22561
22660
  }
22562
22661
  const cameraOn = props.checked;
22563
- const splitButtonAriaString = cameraOn ? strings.onSplitButtonAriaLabel : strings.offSplitButtonAriaLabel;
22662
+ const cameraTurningOn = waitForCamera && !cameraOn;
22663
+ // Ensure Aria-label by default reflects the loading state of the camera
22664
+ const ariaLabel = ((_a = props.ariaLabel) !== null && _a !== void 0 ? _a : cameraTurningOn) ? strings.tooltipVideoLoadingContent : undefined;
22665
+ const splitButtonAriaString = cameraTurningOn
22666
+ ? strings.tooltipVideoLoadingContent
22667
+ : cameraOn
22668
+ ? strings.onSplitButtonAriaLabel
22669
+ : strings.offSplitButtonAriaLabel;
22564
22670
  const toggleAnnouncerString = React.useCallback((isCameraOn) => {
22565
22671
  setAnnouncerString(!isCameraOn ? strings.cameraActionTurnedOffAnnouncement : strings.cameraActionTurnedOnAnnouncement);
22566
22672
  }, [strings.cameraActionTurnedOffAnnouncement, strings.cameraActionTurnedOnAnnouncement]);
@@ -22569,7 +22675,7 @@ const CameraButton = (props) => {
22569
22675
  setAnnouncerString(strings.tooltipVideoLoadingContent);
22570
22676
  }
22571
22677
  }, [setAnnouncerString, cameraOn, strings.tooltipVideoLoadingContent]);
22572
- const onToggleClick = React.useCallback(() => __awaiter$G(void 0, void 0, void 0, function* () {
22678
+ const onToggleClick = React.useCallback(() => __awaiter$H(void 0, void 0, void 0, function* () {
22573
22679
  // Throttle click on camera, need to await onToggleCamera then allow another click
22574
22680
  if (onToggleCamera) {
22575
22681
  setWaitForCamera(true);
@@ -22587,7 +22693,7 @@ const CameraButton = (props) => {
22587
22693
  onVideoIsLoadingAnnouncementCallback();
22588
22694
  onToggleClick();
22589
22695
  }, [onVideoIsLoadingAnnouncementCallback, onToggleClick]);
22590
- const onChangeCameraClick = React.useCallback((device) => __awaiter$G(void 0, void 0, void 0, function* () {
22696
+ const onChangeCameraClick = React.useCallback((device) => __awaiter$H(void 0, void 0, void 0, function* () {
22591
22697
  // Throttle changing camera to prevent too many callbacks
22592
22698
  if (onSelectCamera) {
22593
22699
  setWaitForCamera(true);
@@ -22636,9 +22742,9 @@ const CameraButton = (props) => {
22636
22742
  const splitButtonMenuProps = React.useMemo(() => (Object.assign(Object.assign({}, props.splitButtonMenuProps), { className: 'camera-split-button' })), [props.splitButtonMenuProps]);
22637
22743
  return (React.createElement(React.Fragment, null,
22638
22744
  React.createElement(Announcer$1, { announcementString: announcerString, ariaLive: 'polite' }),
22639
- React.createElement(ControlBarButton, Object.assign({}, props, { disabled: disabled, onClick: onToggleCamera ? onToggleClickCallback : props.onClick, onRenderOnIcon: (_a = props.onRenderOnIcon) !== null && _a !== void 0 ? _a : onRenderCameraOnIcon, onRenderOffIcon: (_b = props.onRenderOffIcon) !== null && _b !== void 0 ? _b : onRenderCameraOffIcon, strings: strings, labelKey: (_c = props.labelKey) !== null && _c !== void 0 ? _c : 'cameraButtonLabel', menuProps: (_d = props.menuProps) !== null && _d !== void 0 ? _d : (props.enableDeviceSelectionMenu
22640
- ? generateDefaultDeviceMenuProps(Object.assign(Object.assign({}, props), { onSelectCamera: onChangeCameraClick, styles: (_e = props.styles) === null || _e === void 0 ? void 0 : _e.menuStyles }), strings, splitButtonPrimaryAction)
22641
- : undefined), menuIconProps: ((_f = props.menuIconProps) !== null && _f !== void 0 ? _f : !props.enableDeviceSelectionMenu) ? { hidden: true } : undefined, split: (_g = props.split) !== null && _g !== void 0 ? _g : props.enableDeviceSelectionMenu, "aria-description": strings.cameraButtonAriaDescription, "aria-roledescription": props.enableDeviceSelectionMenu ? strings.cameraButtonSplitRoleDescription : undefined, splitButtonAriaLabel: props.enableDeviceSelectionMenu ? splitButtonAriaString : undefined, splitButtonMenuProps: splitButtonMenuProps }))));
22745
+ React.createElement(ControlBarButton, Object.assign({}, props, { disabled: disabled, onClick: onToggleCamera ? onToggleClickCallback : props.onClick, onRenderOnIcon: (_b = props.onRenderOnIcon) !== null && _b !== void 0 ? _b : onRenderCameraOnIcon, onRenderOffIcon: (_c = props.onRenderOffIcon) !== null && _c !== void 0 ? _c : onRenderCameraOffIcon, strings: strings, labelKey: (_d = props.labelKey) !== null && _d !== void 0 ? _d : 'cameraButtonLabel', menuProps: (_e = props.menuProps) !== null && _e !== void 0 ? _e : (props.enableDeviceSelectionMenu
22746
+ ? generateDefaultDeviceMenuProps(Object.assign(Object.assign({}, props), { onSelectCamera: onChangeCameraClick, styles: (_f = props.styles) === null || _f === void 0 ? void 0 : _f.menuStyles }), strings, splitButtonPrimaryAction)
22747
+ : undefined), menuIconProps: ((_g = props.menuIconProps) !== null && _g !== void 0 ? _g : !props.enableDeviceSelectionMenu) ? { hidden: true } : undefined, split: (_h = props.split) !== null && _h !== void 0 ? _h : props.enableDeviceSelectionMenu, "aria-description": strings.cameraButtonAriaDescription, "aria-roledescription": props.enableDeviceSelectionMenu ? strings.cameraButtonSplitRoleDescription : undefined, ariaLabel: ariaLabel, splitButtonAriaLabel: props.enableDeviceSelectionMenu ? splitButtonAriaString : undefined, splitButtonMenuProps: splitButtonMenuProps }))));
22642
22748
  };
22643
22749
 
22644
22750
  // Copyright (c) Microsoft Corporation.
@@ -22802,7 +22908,7 @@ const menupButtonPadding = {
22802
22908
 
22803
22909
  // Copyright (c) Microsoft Corporation.
22804
22910
  // Licensed under the MIT License.
22805
- var __awaiter$F = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
22911
+ var __awaiter$G = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
22806
22912
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
22807
22913
  return new (P || (P = Promise))(function (resolve, reject) {
22808
22914
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -22843,7 +22949,7 @@ const MicrophoneButton = (props) => {
22843
22949
  const toggleAnnouncerString = React.useCallback((isMicOn) => {
22844
22950
  setAnnouncerString(!isMicOn ? strings.microphoneActionTurnedOffAnnouncement : strings.microphoneActionTurnedOnAnnouncement);
22845
22951
  }, [strings.microphoneActionTurnedOffAnnouncement, strings.microphoneActionTurnedOnAnnouncement]);
22846
- const onToggleClick = React.useCallback(() => __awaiter$F(void 0, void 0, void 0, function* () {
22952
+ const onToggleClick = React.useCallback(() => __awaiter$G(void 0, void 0, void 0, function* () {
22847
22953
  if (onToggleMicrophone) {
22848
22954
  try {
22849
22955
  yield onToggleMicrophone();
@@ -22869,7 +22975,7 @@ const MicrophoneButton = (props) => {
22869
22975
  splitButtonMenuItems.push({
22870
22976
  key: 'microphoneDNSToggle',
22871
22977
  onRender: () => {
22872
- return (React.createElement(react.Stack, { onClick: () => __awaiter$F(void 0, void 0, void 0, function* () {
22978
+ return (React.createElement(react.Stack, { onClick: () => __awaiter$G(void 0, void 0, void 0, function* () {
22873
22979
  var _a;
22874
22980
  yield ((_a = props.onClickNoiseSuppression) === null || _a === void 0 ? void 0 : _a.call(props));
22875
22981
  setAnnouncerString(props.isDeepNoiseSuppressionOn
@@ -23311,7 +23417,7 @@ const ScreenShareButton = (props) => {
23311
23417
  const styles = screenshareButtonStyles(theme);
23312
23418
  const onRenderScreenShareOnIcon = () => (React.createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonScreenShareStop" }));
23313
23419
  const onRenderScreenShareOffIcon = () => (React.createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonScreenShareStart" }));
23314
- return (React.createElement(ControlBarButton, Object.assign({}, props, { className: react.mergeStyles(styles, props.styles), onClick: (_a = props.onToggleScreenShare) !== null && _a !== void 0 ? _a : props.onClick, onRenderOnIcon: (_b = props.onRenderOnIcon) !== null && _b !== void 0 ? _b : onRenderScreenShareOnIcon, onRenderOffIcon: (_c = props.onRenderOffIcon) !== null && _c !== void 0 ? _c : onRenderScreenShareOffIcon, strings: strings, labelKey: (_d = props.labelKey) !== null && _d !== void 0 ? _d : 'screenShareButtonLabel', disabled: props.disabled })));
23420
+ return (React.createElement(ControlBarButton, Object.assign({}, props, { styles: react.mergeStyleSets(styles, props.styles), onClick: (_a = props.onToggleScreenShare) !== null && _a !== void 0 ? _a : props.onClick, onRenderOnIcon: (_b = props.onRenderOnIcon) !== null && _b !== void 0 ? _b : onRenderScreenShareOnIcon, onRenderOffIcon: (_c = props.onRenderOffIcon) !== null && _c !== void 0 ? _c : onRenderScreenShareOffIcon, strings: strings, labelKey: (_d = props.labelKey) !== null && _d !== void 0 ? _d : 'screenShareButtonLabel', disabled: props.disabled })));
23315
23421
  };
23316
23422
  const screenshareButtonStyles = (theme) => ({
23317
23423
  rootChecked: {
@@ -23732,7 +23838,7 @@ const dtmfFrequencies = {
23732
23838
 
23733
23839
  // Copyright (c) Microsoft Corporation.
23734
23840
  // Licensed under the MIT License.
23735
- var __awaiter$E = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
23841
+ var __awaiter$F = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
23736
23842
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23737
23843
  return new (P || (P = Promise))(function (resolve, reject) {
23738
23844
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -23776,10 +23882,10 @@ const DialpadButton = (props) => {
23776
23882
  const [buttonPressed, setButtonPressed] = React.useState(false);
23777
23883
  const dtmfToneSound = React.useRef(new Tone(dtmfToneAudioContext, dtmfFrequencies[digit].f1, dtmfFrequencies[digit].f2));
23778
23884
  const useLongPressProps = React.useMemo(() => ({
23779
- onClick: () => __awaiter$E(void 0, void 0, void 0, function* () {
23885
+ onClick: () => __awaiter$F(void 0, void 0, void 0, function* () {
23780
23886
  onClick(digit, index);
23781
23887
  }),
23782
- onLongPress: () => __awaiter$E(void 0, void 0, void 0, function* () {
23888
+ onLongPress: () => __awaiter$F(void 0, void 0, void 0, function* () {
23783
23889
  onLongPress(digit, index);
23784
23890
  }),
23785
23891
  touchEventsOnly: longPressTrigger === 'touch'
@@ -24464,7 +24570,7 @@ const _TroubleshootingGuideErrorBar = (props) => {
24464
24570
  // Without this behaviour, this `useEffect` block would cause a render loop.
24465
24571
  React.useEffect(() => setDismissedErrors(dropDismissalsForInactiveErrors(props.activeErrorMessages, dismissedErrors)), [props.activeErrorMessages, dismissedErrors]);
24466
24572
  const toShow = errorsToShow(props.activeErrorMessages, dismissedErrors);
24467
- return (React.createElement(react.Stack, { "data-ui-id": "notifications-stack" }, toShow.map((error) => {
24573
+ return (React.createElement(react.Stack, { "data-ui-id": "notifications-stack" }, toShow.map((error, i) => {
24468
24574
  const devicePermissionErrorBar = (React.createElement("div", null,
24469
24575
  strings[error.type],
24470
24576
  ' ',
@@ -24477,9 +24583,9 @@ const _TroubleshootingGuideErrorBar = (props) => {
24477
24583
  ' ',
24478
24584
  onNetworkingTroubleshootingClick && (React.createElement(react.Link, { onClick: onNetworkingTroubleshootingClick, underline: true },
24479
24585
  React.createElement("span", { className: messageBarLinkStyles(theme) }, troubleshootingGuideStrings.networkTroubleshootingLinkText)))));
24480
- 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: () => {
24586
+ return (React.createElement(react.MessageBar, Object.assign({}, props, { styles: messageBarStyle(theme, messageBarType(error.type)), key: `${error.type} ${i}`, messageBarType: messageBarType(error.type), messageBarIconProps: messageBarIconProps(error.type), actions: React.createElement(react.MessageBarButton, { text: troubleshootingGuideStrings.dismissButtonText, styles: dismissButtonStyle$1(theme), onClick: () => {
24481
24587
  setDismissedErrors(dismissError(dismissedErrors, error));
24482
- }, ariaLabel: troubleshootingGuideStrings.dismissButtonText }), isMultiline: false }), showErrorBar(error.type, devicePermissionErrorBar, networkErrorBar)));
24588
+ }, ariaLabel: troubleshootingGuideStrings.dismissButtonText }), isMultiline: false, "aria-role": "alert", "aria-live": "assertive" }), showErrorBar(error.type, devicePermissionErrorBar, networkErrorBar)));
24483
24589
  })));
24484
24590
  };
24485
24591
  const showErrorBar = (errorType, devicePermissionErrorBar, networkErrorBar) => {
@@ -24499,36 +24605,47 @@ const showErrorBar = (errorType, devicePermissionErrorBar, networkErrorBar) => {
24499
24605
  * @internal
24500
24606
  */
24501
24607
  const _DevicePermissionDropdown = (props) => {
24502
- const { icon, askDevicePermission, onClick, constrain, strings, options, styles } = props;
24608
+ const { icon, askDevicePermission, onClick, constrain, strings, options } = props;
24503
24609
  const onRenderPlaceholder = () => {
24504
- return (React.createElement(react.Stack, { horizontal: true, verticalAlign: "center" },
24610
+ return (React.createElement(react.Stack, { horizontal: true, verticalAlign: "center", horizontalAlign: "space-between" },
24505
24611
  icon,
24506
- React.createElement(react.Text, null, strings === null || strings === void 0 ? void 0 : strings.placeHolderText)));
24612
+ React.createElement(react.Stack.Item, { styles: {
24613
+ root: {
24614
+ overflow: 'hidden',
24615
+ whiteSpace: 'nowrap',
24616
+ textOverflow: 'ellipsis',
24617
+ flex: 1
24618
+ }
24619
+ } },
24620
+ React.createElement(react.Text, null, strings === null || strings === void 0 ? void 0 : strings.placeHolderText)),
24621
+ React.createElement(react.Stack.Item, { shrink: 0, styles: {
24622
+ root: {
24623
+ paddingLeft: '0.5rem'
24624
+ }
24625
+ } },
24626
+ React.createElement(react.Text, null, strings === null || strings === void 0 ? void 0 : strings.actionButtonContent))));
24507
24627
  };
24508
- const onRenderCaretDown = () => {
24509
- return React.createElement(react.DefaultButton, { styles: actionButtonStyles }, strings === null || strings === void 0 ? void 0 : strings.actionButtonContent);
24628
+ const showAsAllowPrompt = !options && !!askDevicePermission;
24629
+ const styles = react.mergeStyleSets(showAsAllowPrompt
24630
+ ? {
24631
+ title: {
24632
+ paddingRight: '0.625rem'
24633
+ }
24634
+ }
24635
+ : {}, props.styles);
24636
+ const click = () => {
24637
+ if (askDevicePermission) {
24638
+ void askDevicePermission(constrain !== null && constrain !== void 0 ? constrain : { video: true, audio: true });
24639
+ }
24640
+ onClick === null || onClick === void 0 ? void 0 : onClick();
24510
24641
  };
24511
- return (React.createElement(react.Dropdown, { "data-ui-id": 'permission-dropdown', placeholder: strings === null || strings === void 0 ? void 0 : strings.placeHolderText, label: strings === null || strings === void 0 ? void 0 : strings.label, "aria-labelledby": props.ariaLabelledby, onRenderPlaceholder: onRenderPlaceholder, onRenderCaretDown: onRenderCaretDown, onClick: () => {
24512
- if (askDevicePermission) {
24513
- askDevicePermission(constrain !== null && constrain !== void 0 ? constrain : { video: true, audio: true });
24642
+ return (React.createElement(react.Dropdown, { role: showAsAllowPrompt ? 'button' : undefined, "data-ui-id": 'permission-dropdown', placeholder: strings === null || strings === void 0 ? void 0 : strings.placeHolderText, label: strings === null || strings === void 0 ? void 0 : strings.label, "aria-labelledby": props.ariaLabelledby, onRenderPlaceholder: onRenderPlaceholder, onRenderCaretDown: showAsAllowPrompt ? () => React.createElement(React.Fragment, null) : undefined, onClick: showAsAllowPrompt ? click : undefined, onKeyDown: showAsAllowPrompt
24643
+ ? (e) => {
24644
+ if (e.key === 'Enter' || e.key === ' ') {
24645
+ click();
24646
+ }
24514
24647
  }
24515
- onClick === null || onClick === void 0 ? void 0 : onClick();
24516
- }, options: options !== null && options !== void 0 ? options : [], styles: styles }));
24517
- };
24518
- const actionButtonStyles = {
24519
- root: {
24520
- border: 'none',
24521
- height: '2rem',
24522
- padding: '0 0',
24523
- paddingTop: '0.1rem',
24524
- position: 'absolute',
24525
- right: '0',
24526
- lineHeight: '2rem',
24527
- minWidth: '3rem'
24528
- },
24529
- label: {
24530
- fontWeight: 400
24531
- }
24648
+ : undefined, options: options !== null && options !== void 0 ? options : [], styles: styles }));
24532
24649
  };
24533
24650
 
24534
24651
  // Copyright (c) Microsoft Corporation.
@@ -25021,7 +25138,7 @@ const _spokenLanguageToCaptionLanguage = {
25021
25138
 
25022
25139
  // Copyright (c) Microsoft Corporation.
25023
25140
  // Licensed under the MIT License.
25024
- var __awaiter$D = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
25141
+ var __awaiter$E = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
25025
25142
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
25026
25143
  return new (P || (P = Promise))(function (resolve, reject) {
25027
25144
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -25060,7 +25177,7 @@ const _CaptionsSettingsModal = (props) => {
25060
25177
  onDismissCaptionsSettings();
25061
25178
  }
25062
25179
  }, [onDismissCaptionsSettings]);
25063
- const onConfirm = React.useCallback(() => __awaiter$D(void 0, void 0, void 0, function* () {
25180
+ const onConfirm = React.useCallback(() => __awaiter$E(void 0, void 0, void 0, function* () {
25064
25181
  const spokenLanguageCode = selectedSpokenLanguage.key;
25065
25182
  const captionLanguageCode = selectedCaptionLanguage.key;
25066
25183
  if (isCaptionsFeatureActive) {
@@ -25157,7 +25274,7 @@ const _CaptionsSettingsModal = (props) => {
25157
25274
  React.createElement("span", null, strings === null || strings === void 0 ? void 0 : strings.captionsSettingsCancelButtonLabel))))));
25158
25275
  };
25159
25276
 
25160
- var __awaiter$C = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
25277
+ var __awaiter$D = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
25161
25278
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
25162
25279
  return new (P || (P = Promise))(function (resolve, reject) {
25163
25280
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -25181,7 +25298,7 @@ const RTTModal = (props) => {
25181
25298
  onDismissModal();
25182
25299
  }
25183
25300
  }, [onDismissModal]);
25184
- const onConfirm = React.useCallback(() => __awaiter$C(void 0, void 0, void 0, function* () {
25301
+ const onConfirm = React.useCallback(() => __awaiter$D(void 0, void 0, void 0, function* () {
25185
25302
  if (onStartRTT) {
25186
25303
  yield onStartRTT();
25187
25304
  }
@@ -25467,6 +25584,7 @@ const Notification = (props) => {
25467
25584
  const strings = props.notificationStrings;
25468
25585
  const theme = react.useTheme();
25469
25586
  const [show, setShow] = React.useState(true);
25587
+ const { ariaLive = 'assertive', role = 'alert' } = props;
25470
25588
  if (props.autoDismiss) {
25471
25589
  setTimeout(() => {
25472
25590
  // After 5 seconds set the show value to false
@@ -25477,7 +25595,7 @@ const Notification = (props) => {
25477
25595
  return React.createElement(React.Fragment, null);
25478
25596
  }
25479
25597
  }
25480
- return (React.createElement(react.Stack, { horizontalAlign: "center" },
25598
+ return (React.createElement(react.Stack, { horizontalAlign: "center", "aria-live": ariaLive, role: role },
25481
25599
  React.createElement(react.Stack, { "data-ui-id": "notification-bar", styles: (_b = (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root) !== null && _b !== void 0 ? _b : containerStyles$3(theme) },
25482
25600
  React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between" },
25483
25601
  React.createElement(react.Stack, { horizontal: true },
@@ -25547,7 +25665,7 @@ const NotificationStack = (props) => {
25547
25665
  : () => onDismiss();
25548
25666
  }
25549
25667
  return (React.createElement("div", { key: index, style: { marginBottom: `${index === maxNotificationsToShow - 1 ? 0 : '0.25rem'}` } },
25550
- React.createElement(Notification, { notificationStrings: strings ? strings[notification.type] : undefined, notificationIconProps: NotificationIconProps(notification.type), onClickPrimaryButton: () => { var _a; return (_a = notification.onClickPrimaryButton) === null || _a === void 0 ? void 0 : _a.call(notification); }, onClickSecondaryButton: () => { var _a; return (_a = notification.onClickSecondaryButton) === null || _a === void 0 ? void 0 : _a.call(notification); }, onDismiss: onDismiss, showStackedEffect: index === maxNotificationsToShow - 1 && activeNotifications.length > maxNotificationsToShow, autoDismiss: notification.autoDismiss })));
25668
+ React.createElement(Notification, { notificationStrings: strings ? strings[notification.type] : undefined, notificationIconProps: NotificationIconProps(notification.type), onClickPrimaryButton: () => { var _a; return (_a = notification.onClickPrimaryButton) === null || _a === void 0 ? void 0 : _a.call(notification); }, onClickSecondaryButton: () => { var _a; return (_a = notification.onClickSecondaryButton) === null || _a === void 0 ? void 0 : _a.call(notification); }, onDismiss: onDismiss, showStackedEffect: index === maxNotificationsToShow - 1 && activeNotifications.length > maxNotificationsToShow, autoDismiss: notification.autoDismiss, ariaLive: notification.ariaLive })));
25551
25669
  }
25552
25670
  else {
25553
25671
  return React.createElement(React.Fragment, null);
@@ -26575,11 +26693,9 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
26575
26693
  // have timestamps for errors.
26576
26694
  const activeErrorMessages = [];
26577
26695
  const isSafari = () => {
26578
- /* @conditional-compile-remove(calling-environment-info) */
26579
26696
  return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.browser) === 'safari';
26580
26697
  };
26581
26698
  const isMacOS = () => {
26582
- /* @conditional-compile-remove(calling-environment-info) */
26583
26699
  return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.platform) === 'mac';
26584
26700
  };
26585
26701
  if (((_a = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _a === void 0 ? void 0 : _a.value) === communicationCalling.DiagnosticQuality.Bad ||
@@ -26777,7 +26893,7 @@ const getImageAttachmentsFromHTMLContent = (content) => {
26777
26893
 
26778
26894
  // Copyright (c) Microsoft Corporation.
26779
26895
  // Licensed under the MIT License.
26780
- var __awaiter$B = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
26896
+ var __awaiter$C = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
26781
26897
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
26782
26898
  return new (P || (P = Promise))(function (resolve, reject) {
26783
26899
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -26803,7 +26919,7 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
26803
26919
  // due to a bug in babel, we can't use arrow function here
26804
26920
  // affecting conditional-compile-remove(attachment-upload)
26805
26921
  onSendMessage: function (content, options) {
26806
- return __awaiter$B(this, void 0, void 0, function* () {
26922
+ return __awaiter$C(this, void 0, void 0, function* () {
26807
26923
  const sendMessageRequest = {
26808
26924
  content,
26809
26925
  senderDisplayName: chatClient.getState().displayName
@@ -26839,14 +26955,14 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
26839
26955
  },
26840
26956
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
26841
26957
  onUploadImage: function (image, imageFilename) {
26842
- return __awaiter$B(this, void 0, void 0, function* () {
26958
+ return __awaiter$C(this, void 0, void 0, function* () {
26843
26959
  const imageResult = yield chatThreadClient.uploadImage(image, imageFilename);
26844
26960
  return imageResult;
26845
26961
  });
26846
26962
  },
26847
26963
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
26848
26964
  onDeleteImage: function (imageId) {
26849
- return __awaiter$B(this, void 0, void 0, function* () {
26965
+ return __awaiter$C(this, void 0, void 0, function* () {
26850
26966
  try {
26851
26967
  yield chatThreadClient.deleteImage(imageId);
26852
26968
  }
@@ -26861,7 +26977,7 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
26861
26977
  onUpdateMessage: function (messageId, content,
26862
26978
  /* @conditional-compile-remove(file-sharing-acs) */
26863
26979
  options) {
26864
- return __awaiter$B(this, void 0, void 0, function* () {
26980
+ return __awaiter$C(this, void 0, void 0, function* () {
26865
26981
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
26866
26982
  const imageAttachments = getImageAttachmentsFromHTMLContent(content);
26867
26983
  const updateMessageOptions = {
@@ -26874,23 +26990,23 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
26874
26990
  yield chatThreadClient.updateMessage(messageId, updateMessageOptions);
26875
26991
  });
26876
26992
  },
26877
- onDeleteMessage: (messageId) => __awaiter$B(void 0, void 0, void 0, function* () {
26993
+ onDeleteMessage: (messageId) => __awaiter$C(void 0, void 0, void 0, function* () {
26878
26994
  yield chatThreadClient.deleteMessage(messageId);
26879
26995
  }),
26880
26996
  // This handler is designed for chatThread to consume
26881
- onMessageSeen: (chatMessageId) => __awaiter$B(void 0, void 0, void 0, function* () {
26997
+ onMessageSeen: (chatMessageId) => __awaiter$C(void 0, void 0, void 0, function* () {
26882
26998
  yield chatThreadClient.sendReadReceipt({ chatMessageId });
26883
26999
  }),
26884
- onTyping: () => __awaiter$B(void 0, void 0, void 0, function* () {
27000
+ onTyping: () => __awaiter$C(void 0, void 0, void 0, function* () {
26885
27001
  yield chatThreadClient.sendTypingNotification();
26886
27002
  }),
26887
- onRemoveParticipant: (userId) => __awaiter$B(void 0, void 0, void 0, function* () {
27003
+ onRemoveParticipant: (userId) => __awaiter$C(void 0, void 0, void 0, function* () {
26888
27004
  yield chatThreadClient.removeParticipant(fromFlatCommunicationIdentifier(userId));
26889
27005
  }),
26890
- updateThreadTopicName: (topicName) => __awaiter$B(void 0, void 0, void 0, function* () {
27006
+ updateThreadTopicName: (topicName) => __awaiter$C(void 0, void 0, void 0, function* () {
26891
27007
  yield chatThreadClient.updateTopic(topicName);
26892
27008
  }),
26893
- onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$B(void 0, void 0, void 0, function* () {
27009
+ onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$C(void 0, void 0, void 0, function* () {
26894
27010
  var _a, _b, _c;
26895
27011
  if (messageIterator === undefined) {
26896
27012
  // Lazy definition so that errors in the method call are reported correctly.
@@ -27160,6 +27276,7 @@ const ACSKnownMessageType = {
27160
27276
  text: 'text',
27161
27277
  html: 'html',
27162
27278
  richtextHtml: 'richtext/html',
27279
+ topicUpdated: 'topicUpdated',
27163
27280
  participantAdded: 'participantAdded',
27164
27281
  participantRemoved: 'participantRemoved'
27165
27282
  };
@@ -27815,7 +27932,9 @@ class ChatError extends Error {
27815
27932
  * @private
27816
27933
  */
27817
27934
  const Constants = {
27818
- TYPING_INDICATOR_MAINTAIN_TIME: 8 * 1000};
27935
+ TYPING_INDICATOR_MAINTAIN_TIME: 8 * 1000,
27936
+ DUMMY_DATE: new Date(0)
27937
+ };
27819
27938
 
27820
27939
  // Copyright (c) Microsoft Corporation.
27821
27940
  // Licensed under the MIT License.
@@ -27824,7 +27943,7 @@ const Constants = {
27824
27943
  */
27825
27944
  const chatStatefulLogger = logger.createClientLogger('communication-react:chat-stateful');
27826
27945
 
27827
- var __awaiter$A = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
27946
+ var __awaiter$B = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
27828
27947
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27829
27948
  return new (P || (P = Promise))(function (resolve, reject) {
27830
27949
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -27866,7 +27985,7 @@ class ResourceDownloadQueue {
27866
27985
  this._messagesNeedingResourceRetrieval.push(copy);
27867
27986
  }
27868
27987
  startQueue(threadId, operation, options) {
27869
- return __awaiter$A(this, void 0, void 0, function* () {
27988
+ return __awaiter$B(this, void 0, void 0, function* () {
27870
27989
  if (this.isActive) {
27871
27990
  return;
27872
27991
  }
@@ -27903,7 +28022,7 @@ class ResourceDownloadQueue {
27903
28022
  }
27904
28023
  }
27905
28024
  downloadSingleUrl(message, resourceUrl, operation) {
27906
- return __awaiter$A(this, void 0, void 0, function* () {
28025
+ return __awaiter$B(this, void 0, void 0, function* () {
27907
28026
  const response = { sourceUrl: '' };
27908
28027
  try {
27909
28028
  const abortController = new AbortController();
@@ -27919,7 +28038,7 @@ class ResourceDownloadQueue {
27919
28038
  });
27920
28039
  }
27921
28040
  downloadAllPreviewUrls(message, operation) {
27922
- return __awaiter$A(this, void 0, void 0, function* () {
28041
+ return __awaiter$B(this, void 0, void 0, function* () {
27923
28042
  var _a;
27924
28043
  const attachments = (_a = message.content) === null || _a === void 0 ? void 0 : _a.attachments;
27925
28044
  if (message.type === 'html' && attachments) {
@@ -27946,7 +28065,7 @@ class ResourceDownloadQueue {
27946
28065
  });
27947
28066
  }
27948
28067
  downloadResource(operation, url, abortController) {
27949
- return __awaiter$A(this, void 0, void 0, function* () {
28068
+ return __awaiter$B(this, void 0, void 0, function* () {
27950
28069
  this._requestsToCancel[url] = { src: url, abortController };
27951
28070
  const blobUrl = yield operation(url, { credential: this._credential, endpoint: this._endpoint }, { abortController });
27952
28071
  delete this._requestsToCancel[url];
@@ -27957,9 +28076,9 @@ class ResourceDownloadQueue {
27957
28076
  /**
27958
28077
  * @private
27959
28078
  */
27960
- const fetchImageSource = (src, authentication, options) => __awaiter$A(void 0, void 0, void 0, function* () {
28079
+ const fetchImageSource = (src, authentication, options) => __awaiter$B(void 0, void 0, void 0, function* () {
27961
28080
  function fetchWithAuthentication(url, token, options) {
27962
- return __awaiter$A(this, void 0, void 0, function* () {
28081
+ return __awaiter$B(this, void 0, void 0, function* () {
27963
28082
  const headers = new Headers();
27964
28083
  headers.append('Authorization', `Bearer ${token}`);
27965
28084
  return yield fetchWithTimeout(url, {
@@ -27970,7 +28089,7 @@ const fetchImageSource = (src, authentication, options) => __awaiter$A(void 0, v
27970
28089
  });
27971
28090
  }
27972
28091
  function fetchWithTimeout(resource, options) {
27973
- return __awaiter$A(this, void 0, void 0, function* () {
28092
+ return __awaiter$B(this, void 0, void 0, function* () {
27974
28093
  // default timeout is 30 seconds
27975
28094
  const { timeout = 30000, abortController } = options;
27976
28095
  const id = setTimeout(() => {
@@ -27997,7 +28116,7 @@ const fetchImageSource = (src, authentication, options) => __awaiter$A(void 0, v
27997
28116
 
27998
28117
  // Copyright (c) Microsoft Corporation.
27999
28118
  // Licensed under the MIT License.
28000
- var __awaiter$z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28119
+ var __awaiter$A = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28001
28120
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28002
28121
  return new (P || (P = Promise))(function (resolve, reject) {
28003
28122
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -28071,7 +28190,7 @@ let ChatContext$1 = class ChatContext {
28071
28190
  // Any item in queue should be removed.
28072
28191
  }
28073
28192
  downloadResourceToCache(threadId, messageId, resourceUrl) {
28074
- return __awaiter$z(this, void 0, void 0, function* () {
28193
+ return __awaiter$A(this, void 0, void 0, function* () {
28075
28194
  var _a;
28076
28195
  let message = (_a = this.getState().threads[threadId]) === null || _a === void 0 ? void 0 : _a.chatMessages[messageId];
28077
28196
  if (message && this._fullsizeImageQueue) {
@@ -28350,7 +28469,7 @@ let ChatContext$1 = class ChatContext {
28350
28469
  * @throws ChatError. Exceptions thrown from `f` are tagged with the failed `target.
28351
28470
  */
28352
28471
  withAsyncErrorTeedToState(f, target) {
28353
- return (...args) => __awaiter$z(this, void 0, void 0, function* () {
28472
+ return (...args) => __awaiter$A(this, void 0, void 0, function* () {
28354
28473
  try {
28355
28474
  return yield f(...args);
28356
28475
  }
@@ -28457,7 +28576,7 @@ const convertChatMessage = (message, status = 'delivered', clientMessageId) => {
28457
28576
 
28458
28577
  // Copyright (c) Microsoft Corporation.
28459
28578
  // Licensed under the MIT License.
28460
- var __awaiter$y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28579
+ var __awaiter$z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28461
28580
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28462
28581
  return new (P || (P = Promise))(function (resolve, reject) {
28463
28582
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -28547,7 +28666,7 @@ class EventSubscriber {
28547
28666
  };
28548
28667
  // This is a temporary fix that no participant message is received for onChatMessageReceived event, which should be handled by JS SDK.
28549
28668
  // Without the temporary fix, there are missing 'participant joined' and 'participant left' system messages in the chat thread.
28550
- this.fetchLastParticipantMessage = (threadId, actionType) => __awaiter$y(this, void 0, void 0, function* () {
28669
+ this.fetchLastParticipantMessage = (threadId, actionType) => __awaiter$z(this, void 0, void 0, function* () {
28551
28670
  var _a, e_1, _b, _c;
28552
28671
  try {
28553
28672
  for (var _d = true, _e = __asyncValues$1(this.chatClient
@@ -28641,7 +28760,7 @@ class EventSubscriber {
28641
28760
 
28642
28761
  // Copyright (c) Microsoft Corporation.
28643
28762
  // Licensed under the MIT License.
28644
- var __awaiter$x = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28763
+ var __awaiter$y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28645
28764
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28646
28765
  return new (P || (P = Promise))(function (resolve, reject) {
28647
28766
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -28663,7 +28782,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
28663
28782
  const threadsIterator = iteratorCreator(...args);
28664
28783
  return {
28665
28784
  next() {
28666
- return __awaiter$x(this, void 0, void 0, function* () {
28785
+ return __awaiter$y(this, void 0, void 0, function* () {
28667
28786
  const result = yield threadsIterator.next();
28668
28787
  if (!result.done && result.value) {
28669
28788
  decorateFn(result.value, context);
@@ -28678,7 +28797,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
28678
28797
  const pages = threadsIterator.byPage(settings);
28679
28798
  return {
28680
28799
  next() {
28681
- return __awaiter$x(this, void 0, void 0, function* () {
28800
+ return __awaiter$y(this, void 0, void 0, function* () {
28682
28801
  const result = yield pages.next();
28683
28802
  const page = result.value;
28684
28803
  if (!result.done && result.value) {
@@ -28765,7 +28884,7 @@ const createDecoratedListParticipants = (chatThreadClient, context) => {
28765
28884
 
28766
28885
  // Copyright (c) Microsoft Corporation.
28767
28886
  // Licensed under the MIT License.
28768
- var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28887
+ var __awaiter$x = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28769
28888
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28770
28889
  return new (P || (P = Promise))(function (resolve, reject) {
28771
28890
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -28784,14 +28903,14 @@ class ProxyChatThreadClient {
28784
28903
  return createDecoratedListMessages(chatThreadClient, this._context);
28785
28904
  }
28786
28905
  case 'getMessage': {
28787
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$w(this, void 0, void 0, function* () {
28906
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$x(this, void 0, void 0, function* () {
28788
28907
  const message = yield chatThreadClient.getMessage(...args);
28789
28908
  this._context.setChatMessage(chatThreadClient.threadId, convertChatMessage(message));
28790
28909
  return message;
28791
28910
  }), 'ChatThreadClient.getMessage');
28792
28911
  }
28793
28912
  case 'sendMessage': {
28794
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$w(this, void 0, void 0, function* () {
28913
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$x(this, void 0, void 0, function* () {
28795
28914
  var _a;
28796
28915
  // Retry logic?
28797
28916
  const [request, options] = args;
@@ -28832,7 +28951,7 @@ class ProxyChatThreadClient {
28832
28951
  }), 'ChatThreadClient.sendMessage');
28833
28952
  }
28834
28953
  case 'addParticipants': {
28835
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$w(this, void 0, void 0, function* () {
28954
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$x(this, void 0, void 0, function* () {
28836
28955
  const result = yield chatThreadClient.addParticipants(...args);
28837
28956
  const [addRequest] = args;
28838
28957
  const participantsToAdd = addRequest.participants;
@@ -28841,7 +28960,7 @@ class ProxyChatThreadClient {
28841
28960
  }), 'ChatThreadClient.addParticipants');
28842
28961
  }
28843
28962
  case 'deleteMessage': {
28844
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$w(this, void 0, void 0, function* () {
28963
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$x(this, void 0, void 0, function* () {
28845
28964
  // DeleteMessage is able to either delete local one(for failed message) or synced message
28846
28965
  const [messageId] = args;
28847
28966
  if (this._context.deleteLocalMessage(chatThreadClient.threadId, messageId)) {
@@ -28859,12 +28978,12 @@ class ProxyChatThreadClient {
28859
28978
  return createDecoratedListReadReceipts(chatThreadClient, this._context);
28860
28979
  }
28861
28980
  case 'sendTypingNotification': {
28862
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$w(this, void 0, void 0, function* () {
28981
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$x(this, void 0, void 0, function* () {
28863
28982
  return yield chatThreadClient.sendTypingNotification(...args);
28864
28983
  }), 'ChatThreadClient.sendTypingNotification');
28865
28984
  }
28866
28985
  case 'removeParticipant': {
28867
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$w(this, void 0, void 0, function* () {
28986
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$x(this, void 0, void 0, function* () {
28868
28987
  const result = yield chatThreadClient.removeParticipant(...args);
28869
28988
  const [removeIdentifier] = args;
28870
28989
  this._context.deleteParticipant(chatThreadClient.threadId, communicationCommon.getIdentifierKind(removeIdentifier));
@@ -28872,7 +28991,7 @@ class ProxyChatThreadClient {
28872
28991
  }), 'ChatThreadClient.removeParticipant');
28873
28992
  }
28874
28993
  case 'updateMessage': {
28875
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$w(this, void 0, void 0, function* () {
28994
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$x(this, void 0, void 0, function* () {
28876
28995
  const result = yield chatThreadClient.updateMessage(...args);
28877
28996
  const [messageId, updateOption] = args;
28878
28997
  this._context.updateChatMessageContent(chatThreadClient.threadId, messageId, updateOption === null || updateOption === void 0 ? void 0 : updateOption.content);
@@ -28880,7 +28999,7 @@ class ProxyChatThreadClient {
28880
28999
  }), 'ChatThreadClient.updateMessage');
28881
29000
  }
28882
29001
  case 'updateTopic': {
28883
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$w(this, void 0, void 0, function* () {
29002
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$x(this, void 0, void 0, function* () {
28884
29003
  const result = yield chatThreadClient.updateTopic(...args);
28885
29004
  const [topic] = args;
28886
29005
  this._context.updateThreadTopic(chatThreadClient.threadId, topic);
@@ -28888,7 +29007,7 @@ class ProxyChatThreadClient {
28888
29007
  }), 'ChatThreadClient.updateTopic');
28889
29008
  }
28890
29009
  case 'getProperties': {
28891
- return this._context.withAsyncErrorTeedToState((...args) => __awaiter$w(this, void 0, void 0, function* () {
29010
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$x(this, void 0, void 0, function* () {
28892
29011
  const result = yield chatThreadClient.getProperties(...args);
28893
29012
  this._context.updateThread(chatThreadClient.threadId, result);
28894
29013
  return result;
@@ -28926,7 +29045,7 @@ const createDecoratedListThreads = (chatClient, context) => {
28926
29045
 
28927
29046
  // Copyright (c) Microsoft Corporation.
28928
29047
  // Licensed under the MIT License.
28929
- var __awaiter$v = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
29048
+ var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28930
29049
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28931
29050
  return new (P || (P = Promise))(function (resolve, reject) {
28932
29051
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -28945,7 +29064,7 @@ const proxyChatClient = {
28945
29064
  switch (prop) {
28946
29065
  case 'createChatThread': {
28947
29066
  return context.withAsyncErrorTeedToState(function (...args) {
28948
- return __awaiter$v(this, void 0, void 0, function* () {
29067
+ return __awaiter$w(this, void 0, void 0, function* () {
28949
29068
  const result = yield chatClient.createChatThread(...args);
28950
29069
  const thread = result.chatThread;
28951
29070
  if (thread) {
@@ -28958,7 +29077,7 @@ const proxyChatClient = {
28958
29077
  }
28959
29078
  case 'deleteChatThread': {
28960
29079
  return context.withAsyncErrorTeedToState(function (...args) {
28961
- return __awaiter$v(this, void 0, void 0, function* () {
29080
+ return __awaiter$w(this, void 0, void 0, function* () {
28962
29081
  const result = yield chatClient.deleteChatThread(...args);
28963
29082
  context.deleteThread(args[0]);
28964
29083
  return result;
@@ -28978,7 +29097,7 @@ const proxyChatClient = {
28978
29097
  }
28979
29098
  case 'startRealtimeNotifications': {
28980
29099
  return context.withAsyncErrorTeedToState(function (...args) {
28981
- return __awaiter$v(this, void 0, void 0, function* () {
29100
+ return __awaiter$w(this, void 0, void 0, function* () {
28982
29101
  const ret = yield chatClient.startRealtimeNotifications(...args);
28983
29102
  if (!receiver.eventSubscriber) {
28984
29103
  receiver.eventSubscriber = new EventSubscriber(chatClient, context);
@@ -28989,7 +29108,7 @@ const proxyChatClient = {
28989
29108
  }
28990
29109
  case 'stopRealtimeNotifications': {
28991
29110
  return context.withAsyncErrorTeedToState(function (...args) {
28992
- return __awaiter$v(this, void 0, void 0, function* () {
29111
+ return __awaiter$w(this, void 0, void 0, function* () {
28993
29112
  const ret = yield chatClient.stopRealtimeNotifications(...args);
28994
29113
  if (receiver.eventSubscriber) {
28995
29114
  receiver.eventSubscriber.unsubscribe();
@@ -29102,7 +29221,7 @@ const _DEFAULT_INLINE_IMAGE_FILE_NAME = 'image.png';
29102
29221
 
29103
29222
  // Copyright (c) Microsoft Corporation.
29104
29223
  // Licensed under the MIT License.
29105
- var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
29224
+ var __awaiter$v = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
29106
29225
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
29107
29226
  return new (P || (P = Promise))(function (resolve, reject) {
29108
29227
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -29219,9 +29338,9 @@ class AzureCommunicationChatAdapter {
29219
29338
  this.chatClient.dispose();
29220
29339
  }
29221
29340
  fetchInitialData() {
29222
- return __awaiter$u(this, void 0, void 0, function* () {
29341
+ return __awaiter$v(this, void 0, void 0, function* () {
29223
29342
  // If get properties fails we dont want to try to get the participants after.
29224
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29343
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29225
29344
  var _a, e_1, _b, _c;
29226
29345
  yield this.chatThreadClient.getProperties();
29227
29346
  try {
@@ -29257,66 +29376,66 @@ class AzureCommunicationChatAdapter {
29257
29376
  this.context.offStateChange(handler);
29258
29377
  }
29259
29378
  sendMessage(content, options) {
29260
- return __awaiter$u(this, void 0, void 0, function* () {
29261
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29379
+ return __awaiter$v(this, void 0, void 0, function* () {
29380
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29262
29381
  return yield this.handlers.onSendMessage(content, options);
29263
29382
  }));
29264
29383
  });
29265
29384
  }
29266
29385
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
29267
29386
  uploadImage(image, imageFilename) {
29268
- return __awaiter$u(this, void 0, void 0, function* () {
29269
- return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29387
+ return __awaiter$v(this, void 0, void 0, function* () {
29388
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29270
29389
  return yield this.handlers.onUploadImage(image, imageFilename);
29271
29390
  }));
29272
29391
  });
29273
29392
  }
29274
29393
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
29275
29394
  deleteImage(imageId) {
29276
- return __awaiter$u(this, void 0, void 0, function* () {
29277
- return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29395
+ return __awaiter$v(this, void 0, void 0, function* () {
29396
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29278
29397
  return yield this.handlers.onDeleteImage(imageId);
29279
29398
  }));
29280
29399
  });
29281
29400
  }
29282
29401
  sendReadReceipt(chatMessageId) {
29283
- return __awaiter$u(this, void 0, void 0, function* () {
29284
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29402
+ return __awaiter$v(this, void 0, void 0, function* () {
29403
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29285
29404
  yield this.handlers.onMessageSeen(chatMessageId);
29286
29405
  }));
29287
29406
  });
29288
29407
  }
29289
29408
  sendTypingIndicator() {
29290
- return __awaiter$u(this, void 0, void 0, function* () {
29291
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29409
+ return __awaiter$v(this, void 0, void 0, function* () {
29410
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29292
29411
  yield this.handlers.onTyping();
29293
29412
  }));
29294
29413
  });
29295
29414
  }
29296
29415
  removeParticipant(userId) {
29297
- return __awaiter$u(this, void 0, void 0, function* () {
29298
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29416
+ return __awaiter$v(this, void 0, void 0, function* () {
29417
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29299
29418
  yield this.handlers.onRemoveParticipant(userId);
29300
29419
  }));
29301
29420
  });
29302
29421
  }
29303
29422
  setTopic(topicName) {
29304
- return __awaiter$u(this, void 0, void 0, function* () {
29305
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29423
+ return __awaiter$v(this, void 0, void 0, function* () {
29424
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29306
29425
  yield this.handlers.updateThreadTopicName(topicName);
29307
29426
  }));
29308
29427
  });
29309
29428
  }
29310
29429
  loadPreviousChatMessages(messagesToLoad) {
29311
- return __awaiter$u(this, void 0, void 0, function* () {
29312
- return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29430
+ return __awaiter$v(this, void 0, void 0, function* () {
29431
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29313
29432
  return yield this.handlers.onLoadPreviousChatMessages(messagesToLoad);
29314
29433
  }));
29315
29434
  });
29316
29435
  }
29317
29436
  updateMessage(messageId, content, options) {
29318
- return __awaiter$u(this, void 0, void 0, function* () {
29319
- return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29437
+ return __awaiter$v(this, void 0, void 0, function* () {
29438
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29320
29439
  var _a;
29321
29440
  /* @conditional-compile-remove(file-sharing-acs) */
29322
29441
  const messageOptions = {};
@@ -29347,14 +29466,14 @@ class AzureCommunicationChatAdapter {
29347
29466
  });
29348
29467
  }
29349
29468
  deleteMessage(messageId) {
29350
- return __awaiter$u(this, void 0, void 0, function* () {
29351
- return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29469
+ return __awaiter$v(this, void 0, void 0, function* () {
29470
+ return yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29352
29471
  return yield this.handlers.onDeleteMessage(messageId);
29353
29472
  }));
29354
29473
  });
29355
29474
  }
29356
29475
  downloadResourceToCache(resourceDetails) {
29357
- return __awaiter$u(this, void 0, void 0, function* () {
29476
+ return __awaiter$v(this, void 0, void 0, function* () {
29358
29477
  this.chatClient.downloadResourceToCache(resourceDetails.threadId, resourceDetails.messageId, resourceDetails.resourceUrl);
29359
29478
  });
29360
29479
  }
@@ -29433,7 +29552,7 @@ class AzureCommunicationChatAdapter {
29433
29552
  this.emitter.off(event, listener);
29434
29553
  }
29435
29554
  asyncTeeErrorToEventEmitter(f) {
29436
- return __awaiter$u(this, void 0, void 0, function* () {
29555
+ return __awaiter$v(this, void 0, void 0, function* () {
29437
29556
  try {
29438
29557
  return yield f();
29439
29558
  }
@@ -29483,7 +29602,7 @@ const convertEventType = (type) => {
29483
29602
  *
29484
29603
  * @public
29485
29604
  */
29486
- const createAzureCommunicationChatAdapter = (_a) => __awaiter$u(void 0, [_a], void 0, function* ({ endpoint: endpointUrl, userId, displayName, credential, threadId }) {
29605
+ const createAzureCommunicationChatAdapter = (_a) => __awaiter$v(void 0, [_a], void 0, function* ({ endpoint: endpointUrl, userId, displayName, credential, threadId }) {
29487
29606
  return _createAzureCommunicationChatAdapterInner(endpointUrl, userId, displayName, credential, threadId);
29488
29607
  });
29489
29608
  /**
@@ -29491,7 +29610,7 @@ const createAzureCommunicationChatAdapter = (_a) => __awaiter$u(void 0, [_a], vo
29491
29610
  *
29492
29611
  * @internal
29493
29612
  */
29494
- const _createAzureCommunicationChatAdapterInner = (endpoint_1, userId_1, displayName_1, credential_1, threadId_1, ...args_1) => __awaiter$u(void 0, [endpoint_1, userId_1, displayName_1, credential_1, threadId_1, ...args_1], void 0, function* (endpoint, userId, displayName, credential, threadId, telemetryImplementationHint = 'Chat') {
29613
+ const _createAzureCommunicationChatAdapterInner = (endpoint_1, userId_1, displayName_1, credential_1, threadId_1, ...args_1) => __awaiter$v(void 0, [endpoint_1, userId_1, displayName_1, credential_1, threadId_1, ...args_1], void 0, function* (endpoint, userId, displayName, credential, threadId, telemetryImplementationHint = 'Chat') {
29495
29614
  if (!_isValidIdentifier(userId)) {
29496
29615
  throw new Error('Provided userId is invalid. Please provide valid identifier object.');
29497
29616
  }
@@ -29511,7 +29630,7 @@ const _createAzureCommunicationChatAdapterInner = (endpoint_1, userId_1, display
29511
29630
  * ThreadId is a promise to allow for lazy initialization of the adapter.
29512
29631
  * @internal
29513
29632
  */
29514
- const _createLazyAzureCommunicationChatAdapterInner = (endpoint_2, userId_2, displayName_2, credential_2, threadId_2, ...args_2) => __awaiter$u(void 0, [endpoint_2, userId_2, displayName_2, credential_2, threadId_2, ...args_2], void 0, function* (endpoint, userId, displayName, credential, threadId, telemetryImplementationHint = 'Chat') {
29633
+ const _createLazyAzureCommunicationChatAdapterInner = (endpoint_2, userId_2, displayName_2, credential_2, threadId_2, ...args_2) => __awaiter$v(void 0, [endpoint_2, userId_2, displayName_2, credential_2, threadId_2, ...args_2], void 0, function* (endpoint, userId, displayName, credential, threadId, telemetryImplementationHint = 'Chat') {
29515
29634
  if (!_isValidIdentifier(userId)) {
29516
29635
  throw new Error('Provided userId is invalid. Please provide valid identifier object.');
29517
29636
  }
@@ -29521,7 +29640,7 @@ const _createLazyAzureCommunicationChatAdapterInner = (endpoint_2, userId_2, dis
29521
29640
  endpoint,
29522
29641
  credential
29523
29642
  }, undefined, telemetryImplementationHint);
29524
- return threadId.then((threadId) => __awaiter$u(void 0, void 0, void 0, function* () {
29643
+ return threadId.then((threadId) => __awaiter$v(void 0, void 0, void 0, function* () {
29525
29644
  if (UNSUPPORTED_CHAT_THREAD_TYPE.some((t) => threadId.includes(t))) {
29526
29645
  console.error(`Invalid Chat ThreadId: ${threadId}. Please note with Teams Channel Meetings, only Calling is supported and Chat is not currently supported. Read more: ${TEAMS_LIMITATION_LEARN_MORE}.`);
29527
29646
  }
@@ -29583,7 +29702,7 @@ beforeDispose) => {
29583
29702
  if (!credential || !displayName || !endpoint || !threadId || !userId) {
29584
29703
  return;
29585
29704
  }
29586
- (() => __awaiter$u(void 0, void 0, void 0, function* () {
29705
+ (() => __awaiter$v(void 0, void 0, void 0, function* () {
29587
29706
  if (adapterRef.current) {
29588
29707
  // Dispose the old adapter when a new one is created.
29589
29708
  //
@@ -29621,7 +29740,7 @@ beforeDispose) => {
29621
29740
  // Dispose any existing adapter when the component unmounts.
29622
29741
  React.useEffect(() => {
29623
29742
  return () => {
29624
- (() => __awaiter$u(void 0, void 0, void 0, function* () {
29743
+ (() => __awaiter$v(void 0, void 0, void 0, function* () {
29625
29744
  if (adapterRef.current) {
29626
29745
  if (beforeDisposeRef.current) {
29627
29746
  yield beforeDisposeRef.current(adapterRef.current);
@@ -29643,7 +29762,7 @@ beforeDispose) => {
29643
29762
  * @public
29644
29763
  */
29645
29764
  function createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient) {
29646
- return __awaiter$u(this, void 0, void 0, function* () {
29765
+ return __awaiter$v(this, void 0, void 0, function* () {
29647
29766
  return new AzureCommunicationChatAdapter(chatClient, chatThreadClient);
29648
29767
  });
29649
29768
  }
@@ -29651,7 +29770,7 @@ const isChatError = (e) => {
29651
29770
  return 'target' in e && e['target'] !== undefined && 'innerError' in e && e['innerError'] !== undefined;
29652
29771
  };
29653
29772
 
29654
- var call$n={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",videoEffectsPaneAriaLabel:"Video effects pane",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",phoneCallMoreButtonLabel:"Phone Call",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",moreButtonTogetherModeLayoutLabel:"Together mode",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."},hideAttendeeNames:{hideAttendeeNameAttendee:"Your name is hidden from other attendees. Organizers and presenters can see your real name.",hideAttendeeNamePresenter:"Attendee names are hidden. Only organizers and presenters can see names to protect attendee privacy."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},surveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel",closeSpotlightPromptButtonLabel:"Close"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight",leaveConfirmButtonLabel:"Leave",endCallConfirmButtonLabel:"End call",hangUpCancelButtonLabel:"Cancel",leaveConfirmDialogTitle:"Leave the call?",leaveConfirmDialogContent:"Are you sure you want to leave the call?",endCallConfirmDialogTitle:"End the call?",endCallConfirmDialogContent:"You'll end the call for everyone.",invalidMeetingIdentifier:"Invalid meeting ID or passcode",pinParticipantMenuLabel:"Pin for me",pinParticipantLimitReachedMenuLabel:"Pin (limit reached)",unpinParticipantMenuLabel:"Unpin",pinParticipantMenuItemAriaLabel:"Pin for me",unpinParticipantMenuItemAriaLabel:"Unpin",muteAllMenuLabel:"Mute all",muteAllDialogTitle:"Mute everyone?",muteAllDialogContent:"This will mute everyone in the meeting but you.",muteAllConfirmButtonLabel:"Mute all",muteAllCancelButtonLabel:"Cancel",joinBreakoutRoomButtonLabel:"Join breakout room",returnFromBreakoutRoomButtonLabel:"Leave room",leaveBreakoutRoomAndMeetingButtonLabel:"Leave meeting",breakoutRoomJoinedNotificationTitle:"You've joined Breakout room '{roomName}'",joinBreakoutRoomBannerTitle:"Breakout room '{roomName}' is open",joinBreakoutRoomBannerButtonLabel:"Join",returnFromBreakoutRoomBannerTitle:"Return to main meeting",returnFromBreakoutRoomBannerButtonLabel:"Rejoin"};var chat$n={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment",uploadImageDataNotProvided:"Image data is not provided.",uploadImageIsTooLarge:"Image is too large. Choose one that's less than {maxImageSize} MB.",uploadImageExtensionIsNotAllowed:"Uploading .{imageExtension} image is not allowed.",uploadImageFailed:"Unable to upload image. Please try again later."};var callWithChat$n={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peopleButtonTooltipOpenAriaLabel:"People button, Show participants",peopleButtonTooltipCloseAriaLabel:"People button, Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",breakoutRoomChatPaneTitle:"Breakout Room Chat",chatContentSpinnerLabel:"Loading..."};var en_US = {call:call$n,chat:chat$n,callWithChat:callWithChat$n};
29773
+ var call$n={cameraLabel:"Camera",noCamerasLabel:"No cameras found",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",videoEffectsPaneTitle:"Effects",videoEffectsPaneBackgroundSelectionTitle:"Background",videoEffectsPaneAriaLabel:"Video effects pane",configurationPageCameraIsLoadingLabel:"Video is loading...",configurationPageVideoEffectsButtonLabel:"Effects",unableToStartVideoEffect:"Unable to apply video effect.",blurBackgroundEffectButtonLabel:"Blur",blurBackgroundTooltip:"Blur Background",removeBackgroundEffectButtonLabel:"None",removeBackgroundTooltip:"Remove Background",cameraOffBackgroundEffectWarningText:"Your camera is off. Turn on camera to see video effect.",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leavingCallTitle:"Leaving...",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",notInvitedToRoomDetails:"You are not able to join this room because you do not have an invite.",notInvitedToRoomTitle:"Not invited to room",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peoplePaneTitle:"People",peoplePaneMoreButtonAriaLabel:"More",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call {numberOfPeople}",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",startSpotlightMenuLabel:"Spotlight for everyone",addSpotlightMenuLabel:"Add spotlight",stopSpotlightMenuLabel:"Stop spotlighting",stopSpotlightOnSelfMenuLabel:"Exit spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopAllSpotlightMenuLabel:"Stop all spotlights",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",roomNotFoundDetails:"The room ID provided could not be found.",roomNotFoundTitle:"Room not found",roomNotValidDetails:"This room is not valid at this current time.",roomNotValidTitle:"Room not valid",inviteToRoomRemovedDetails:"Your invite to join this room was removed.",inviteToRoomRemovedTitle:"Invite to room removed",soundLabel:"Sound",noMicrophonesLabel:"No microphones found",noSpeakersLabel:"No speakers found",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumingCallButtonLabel:"Resuming...",resumeCallButtonAriaLabel:"Resume call",resumingCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",outboundCallingNoticeString:"Calling...",participantJoinedNoticeString:"{displayName} joined",twoParticipantJoinedNoticeString:"{displayName1} and {displayName2} have joined",threeParticipantJoinedNoticeString:"{displayName1}, {displayName2} and {displayName3} have joined",participantLeftNoticeString:"{displayName} left",twoParticipantLeftNoticeString:"{displayName1} and {displayName2} have left",threeParticipantLeftNoticeString:"{displayName1}, {displayName2} and {displayName3} have left",unnamedParticipantString:"unnamed participant",manyUnnamedParticipantsJoined:"unnamed participant and {numOfParticipants} other participants joined",manyUnnamedParticipantsLeft:"unnamed participant and {numOfParticipants} other participants left",manyParticipantsJoined:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants joined",manyParticipantsLeft:"{displayName1}, {displayName2}, {displayName3} and {numOfParticipants} other participants left",liveCaptionsLabel:"Live captions",captionsSettingsLabel:"Caption settings",startCaptionsButtonOnLabel:"Turn on captions",startCaptionsButtonOffLabel:"Turn off captions",startCaptionsButtonTooltipOnContent:"Turn off captions",startCaptionsButtonTooltipOffContent:"Turn on captions",captionsSettingsModalTitle:"Captions Settings",captionsSettingsSpokenLanguageDropdownLabel:"Spoken language",captionsSettingsCaptionLanguageDropdownLabel:"Captions language",captionsSettingsSpokenLanguageDropdownInfoText:"Language that everyone on this call is speaking.",captionsSettingsCaptionLanguageDropdownInfoText:"Captions will appear in this langugage.",captionsSettingsConfirmButtonLabel:"Confirm",captionsSettingsCancelButtonLabel:"Cancel",captionsSettingsModalAriaLabel:"Captions Setting Modal",captionsSettingsCloseModalButtonAriaLabel:"Close Captions Setting",captionsBannerMoreButtonCallingLabel:"More",captionsBannerMoreButtonTooltip:"More options",dismissModalAriaLabel:"Local and remote picture and picture, press enter to return to call",callRejectedTitle:"The call could not be completed",callRejectedMoreDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutTitle:"The call could not be completed",callTimeoutDetails:"The person you are trying to reach is unavailable. Please try again later.",callTimeoutBotTitle:"The call could not be completed",callTimeoutBotDetails:"The service that you are trying to reach is unavailable. Please try again later.",dtmfDialerButtonLabel:"Dialpad",dtmfDialerButtonTooltipOn:"Show dialpad",dtmfDialerButtonTooltipOff:"Hide dialpad",dtmfDialerMoreButtonLabelOn:"Show dialpad",dtmfDialerMoreButtonLabelOff:"Hide dialpad",phoneCallMoreButtonLabel:"Phone Call",spokenLanguageStrings:{"ar-ae":"Arabic - U.A.E.","ar-sa":"Arabic - Saudi Arabia","da-dk":"Danish","de-de":"German - Germany","en-au":"English - Australia","en-ca":"English - Canada","en-gb":"English - United Kingdom","en-in":"English - India","en-nz":"English - New Zealand","en-us":"English - United States","es-es":"Spanish - Spain (Modern Sort)","es-mx":"Spanish - Mexico","fi-fi":"Finnish","fr-ca":"French - Canada","fr-fr":"French - France","hi-in":"Hindi","it-it":"Italian - Italy","ja-jp":"Japanese","ko-kr":"Korean","nb-no":"Norwegian (Bokmål)","nl-be":"Dutch - Belgium","nl-nl":"Dutch - Netherlands","pl-pl":"Polish","pt-br":"Portuguese - Brazil","ru-ru":"Russian","sv-se":"Swedish","zh-cn":"Chinese - People's Republic of China","zh-hk":"Chinese - Hong Kong SAR","cs-cz":"Czech","pt-pt":"Portuguese - Portugal","tr-tr":"Turkish","vi-vn":"Vietnamese","th-th":"Thai","he-il":"Hebrew","cy-gb":"Welsh","uk-ua":"Ukrainian","el-gr":"Greek","hu-hu":"Hungarian","ro-ro":"Romanian","sk-sk":"Slovak","zh-tw":"Chinese - Taiwan"},captionLanguageStrings:{ar:"Arabic",da:"Danish",de:"German",en:"English",es:"Spanish",fi:"Finnish","fr-ca":"French - Canada",fr:"French - France",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nb:"Norwegian (Bokmål)",nl:"Dutch",pl:"Polish",pt:"Portuguese - Brazil",ru:"Russian",sv:"Swedish","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cs:"Czech","pt-pt":"Portuguese - Portugal",tr:"Turkish",vi:"Vietnamese",th:"Thai",he:"Hebrew",cy:"Welsh",uk:"Ukrainian",el:"Greek",hu:"Hungarian",ro:"Romanian",sk:"Slovak"},captionsBannerSpinnerText:"Starting captions...",transferPageTransferorText:"Transferring...",transferPageTransferTargetText:"Connecting...",transferPageUnknownTransferorDisplayName:"Unknown",transferPageUnknownTransferTargetDisplayName:"Unknown",transferPageNoticeString:"You are being transferred",participantCouldNotBeReachedTitle:"Target participant is currently not available",participantCouldNotBeReachedMoreDetails:"Please contact participant when they are available",permissionToReachTargetParticipantNotAllowedTitle:"Permission to reach target participant is not allowed",permissionToReachTargetParticipantNotAllowedMoreDetails:"Please check that the target participant is in the same tenant",unableToResolveTenantTitle:"Unable to resolve tenant id for the target participant",unableToResolveTenantMoreDetails:"Please check the participant id is entered correctly",participantIdIsMalformedTitle:"Participant id is not in the correct format",participantIdIsMalformedMoreDetails:"Please check that the participant id is in the correct format",moreButtonGalleryControlLabel:"View",moreButtonGalleryPositionToggleLabel:"Move gallery to top",moreButtonGallerySpeakerLayoutLabel:"Speaker",moreButtonGalleryFloatingLocalLayoutLabel:"Dynamic",moreButtonGalleryDefaultLayoutLabel:"Gallery view",moreButtonGalleryFocusedContentLayoutLabel:"Focus on content",moreButtonLargeGalleryDefaultLayoutLabel:"Large Gallery",moreButtonTogetherModeLayoutLabel:"Together mode",capabilityChangedNotification:{turnVideoOn:{lostDueToMeetingOption:"Your camera has been disabled. You can no longer share video.",grantedDueToMeetingOption:"Your camera has been enabled. Turn it on if you'd like to share video."},unmuteMic:{lostDueToMeetingOption:"Your mic has been disabled. You can no longer unmute.",grantedDueToMeetingOption:"Your mic has been enabled. Unmute if you'd like to speak."},shareScreen:{lostDueToRoleChangeToAttendee:"Your role has been changed. Some actions, like sharing content, won't be available to you.",grantedDueToRoleChangeToPresenter:"You're a presenter. You can share content and facilitate the meeting."},hideAttendeeNames:{hideAttendeeNameAttendee:"Your name is hidden from other attendees. Organizers and presenters can see your real name.",hideAttendeeNamePresenter:"Attendee names are hidden. Only organizers and presenters can see names to protect attendee privacy."}},surveyTitle:"Help us improve",starSurveyHelperText:"How was the quality of the call?",starSurveyOneStarText:"The quality was bad.",starSurveyTwoStarText:"The quality was poor.",starSurveyThreeStarText:"The quality was good.",starSurveyFourStarText:"The quality was great.",starSurveyFiveStarText:"The quality was excellent.",surveyConfirmButtonLabel:"Send Feedback",starRatingAriaLabel:"Select {0} of {1} stars",surveySkipButtonLabel:"Skip",tagsSurveyQuestion:"What could have been better?",tagsSurveyTextFieldDefaultText:"Other, please specify",tagsSurveyHelperText:"Check any issues you experienced",endOfSurveyText:"Thank you for your feedback!",surveyIssues:{overallRating:{callCannotJoin:"I could not join call",callCannotInvite:"I could not invite others into the call",hadToRejoin:"I had to rejoin the call",callEndedUnexpectedly:"Call ended for me unexpectedly",otherIssues:"I was having other issues with the call"},audioRating:{noLocalAudio:"The other side could not hear any sound",noRemoteAudio:"I could not hear any sound",echo:"I heard echos on the call",audioNoise:"I heard noise on the call",lowVolume:"Volume was low",audioStoppedUnexpectedly:"Audio stopped unexpectedly",distortedSpeech:"Audio was distorted",audioInterruption:"Audio was interrupted",otherIssues:"I was having other audio issues in this call"},videoRating:{noVideoReceived:"I could not see any video",noVideoSent:"Others could not see me",lowQuality:"Video quality was low",freezes:"Video frozen",stoppedUnexpectedly:"Video stopped unexpectedly",darkVideoReceived:"I can only see dark screens when others turn on their camera",audioVideoOutOfSync:"Audio and Video was out of sync",otherIssues:"I was having other video issues in this call"},screenshareRating:{noContentLocal:"Other people could not see my screenshare",noContentRemote:"I could not see other people's screenshare",cannotPresent:"I could not present my screen",lowQuality:"Screen share quality was low",freezes:"Screen share frozen",stoppedUnexpectedly:"Screen share stopped unexpectedly",largeDelay:"Screen share has a large delay",otherIssues:"I was having other screen share issues in this call"}},surveyIssuesHeadingStrings:{overallRating:"Overall",audioRating:"Audio",videoRating:"Video",screenshareRating:"Presenting"},spotlightPrompt:{startSpotlightHeading:"Spotlight for everyone?",startSpotlightText:"You'll highlight this video for everyone in the meeting.",startSpotlightOnSelfText:"You'll highlight your video for everyone in the meeting.",startSpotlightConfirmButtonLabel:"Spotlight for everyone",startSpotlightCancelButtonLabel:"Cancel",stopSpotlightHeading:"Stop spotlighting this video?",stopSpotlightOnSelfHeading:"Exit spotlight?",stopAllSpotlightHeading:"Stop spotlighting all videos?",stopSpotlightText:"This video will no longer be highlighted for everyone in the meeting.",stopSpotlightOnSelfText:"Your video will no longer be highlighted for everyone in the meeting.",stopAllSpotlightText:"The videos will no longer be highlighted for everyone in the meeting.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel",closeSpotlightPromptButtonLabel:"Close"},exitSpotlightButtonLabel:"Exit spotlight",exitSpotlightButtonTooltip:"Exit spotlight",leaveConfirmButtonLabel:"Leave",endCallConfirmButtonLabel:"End call",hangUpCancelButtonLabel:"Cancel",leaveConfirmDialogTitle:"Leave the call?",leaveConfirmDialogContent:"Are you sure you want to leave the call?",endCallConfirmDialogTitle:"End the call?",endCallConfirmDialogContent:"You'll end the call for everyone.",invalidMeetingIdentifier:"Invalid meeting ID or passcode",pinParticipantMenuLabel:"Pin for me",pinParticipantLimitReachedMenuLabel:"Pin (limit reached)",unpinParticipantMenuLabel:"Unpin",pinParticipantMenuItemAriaLabel:"Pin for me",unpinParticipantMenuItemAriaLabel:"Unpin",muteAllMenuLabel:"Mute all",muteAllDialogTitle:"Mute everyone?",muteAllDialogContent:"This will mute everyone in the meeting but you.",muteAllConfirmButtonLabel:"Mute all",muteAllCancelButtonLabel:"Cancel",joinBreakoutRoomButtonLabel:"Join breakout room",returnFromBreakoutRoomButtonLabel:"Leave room",leaveBreakoutRoomAndMeetingButtonLabel:"Leave meeting",breakoutRoomJoinedNotificationTitle:"You've joined Breakout room '{roomName}'",joinBreakoutRoomBannerTitle:"Breakout room '{roomName}' is open",joinBreakoutRoomBannerButtonLabel:"Join",returnFromBreakoutRoomBannerTitle:"Return to main meeting",returnFromBreakoutRoomBannerButtonLabel:"Rejoin"};var chat$n={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment",uploadImageDataNotProvided:"Image data is not provided.",uploadImageIsTooLarge:"Image is too large. Choose one that's less than {maxImageSize} MB.",uploadImageExtensionIsNotAllowed:"Uploading .{imageExtension} image is not allowed.",uploadImageFailed:"Unable to upload image. Please try again later."};var callWithChat$n={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkButtonActionedLabel:"Link copied",copyInviteLinkActionedAriaLabel:"Invite link copied",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerCaptionsMenuTitle:"Live captions",moreDrawerSpokenLanguageMenuTitle:"Spoken language",moreDrawerCaptionLanguageMenuTitle:"Caption language",moreDrawerGalleryOptionsMenuTitle:"Gallery options",peopleButtonLabel:"People",selectedPeopleButtonLabel:"People Button Selected",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peopleButtonTooltipOpenAriaLabel:"People button, Show participants",peopleButtonTooltipCloseAriaLabel:"People button, Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close dialpad",openDtmfDialpadLabel:"Show dialpad",dtmfDialpadPlaceholderText:"Enter number",breakoutRoomChatPaneTitle:"Breakout Room Chat",chatContentSpinnerLabel:"Loading..."};var en_US = {call:call$n,chat:chat$n,callWithChat:callWithChat$n};
29655
29774
 
29656
29775
  // Copyright (c) Microsoft Corporation.
29657
29776
  // Licensed under the MIT License.
@@ -30021,7 +30140,7 @@ const sendboxContainerStyles = {
30021
30140
 
30022
30141
  // Copyright (c) Microsoft Corporation.
30023
30142
  // Licensed under the MIT License.
30024
- var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
30143
+ var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
30025
30144
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30026
30145
  return new (P || (P = Promise))(function (resolve, reject) {
30027
30146
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -30042,7 +30161,7 @@ const AvatarPersona = (props) => {
30042
30161
  const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor, showOverflowTooltip } = props;
30043
30162
  const [data, setData] = React.useState();
30044
30163
  React.useEffect(() => {
30045
- (() => __awaiter$t(void 0, void 0, void 0, function* () {
30164
+ (() => __awaiter$u(void 0, void 0, void 0, function* () {
30046
30165
  if (dataProvider && userId) {
30047
30166
  const newData = yield dataProvider(userId);
30048
30167
  if (avatarDeepDifferenceCheck(data, newData)) {
@@ -30543,7 +30662,7 @@ const ParticipantListWithHeading = (props) => {
30543
30662
  /* @conditional-compile-remove(total-participant-count) */ totalParticipantCount))),
30544
30663
  (onClickHeadingMoreButton ||
30545
30664
  ((headingMoreButtonMenuProps === null || headingMoreButtonMenuProps === void 0 ? void 0 : headingMoreButtonMenuProps.items) && headingMoreButtonMenuProps.items.length > 0)) && (React.createElement(react.Stack.Item, null,
30546
- React.createElement(react.DefaultButton, { "data-ui-id": "people-pane-header-more-button", ariaLabel: headingMoreButtonAriaLabel, styles: headingMoreButtonStyles(theme), iconProps: { iconName: 'PeoplePaneMoreButton' }, onClick: onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined, menuProps: props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps, onRenderMenuIcon: () => null })))),
30665
+ React.createElement(react.DefaultButton, { autoFocus: true, "data-ui-id": "people-pane-header-more-button", ariaLabel: headingMoreButtonAriaLabel, styles: headingMoreButtonStyles(theme), iconProps: { iconName: 'PeoplePaneMoreButton' }, onClick: onClickHeadingMoreButton ? () => onClickHeadingMoreButton() : undefined, menuProps: props.onClickHeadingMoreButton ? undefined : props.headingMoreButtonMenuProps, onRenderMenuIcon: () => null })))),
30547
30666
  React.createElement(react.FocusZone, { className: participantListContainerStyle, shouldFocusOnMount: true },
30548
30667
  React.createElement(ParticipantList$n, Object.assign({}, participantListProps, { pinnedParticipants: pinnedParticipants, styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React.createElement(React.Fragment, null,
30549
30668
  React.createElement(AvatarPersona, Object.assign({ "data-ui-id": "chat-composite-participant-custom-avatar", userId: userId }, options, { hidePersonaDetails: !!(options === null || options === void 0 ? void 0 : options.text), dataProvider: onFetchAvatarPersonaData, allowActiveBorder: true })),
@@ -30596,7 +30715,7 @@ const AttachmentDownloadErrorBar = (props) => {
30596
30715
  /**
30597
30716
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
30598
30717
  */
30599
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-De-8bhRs.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
30718
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BbQi9RvO.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
30600
30719
  /**
30601
30720
  * @private
30602
30721
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -30604,7 +30723,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
30604
30723
  *
30605
30724
  /* @conditional-compile-remove(rich-text-editor-composite-support)
30606
30725
  */
30607
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-De-8bhRs.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
30726
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BbQi9RvO.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
30608
30727
  /**
30609
30728
  * @private
30610
30729
  */
@@ -30638,7 +30757,7 @@ const SendBoxPicker = (props) => {
30638
30757
 
30639
30758
  // Copyright (c) Microsoft Corporation.
30640
30759
  // Licensed under the MIT License.
30641
- var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
30760
+ var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
30642
30761
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30643
30762
  return new (P || (P = Promise))(function (resolve, reject) {
30644
30763
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -30650,7 +30769,7 @@ var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments,
30650
30769
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
30651
30770
  const MAX_INLINE_IMAGE_UPLOAD_SIZE_MB = 20;
30652
30771
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
30653
- const fetchBlobData = (resource, options) => __awaiter$s(void 0, void 0, void 0, function* () {
30772
+ const fetchBlobData = (resource, options) => __awaiter$t(void 0, void 0, void 0, function* () {
30654
30773
  // default timeout is 30 seconds
30655
30774
  const { timeout = 30000, abortController } = options;
30656
30775
  const id = setTimeout(() => {
@@ -30664,7 +30783,7 @@ const fetchBlobData = (resource, options) => __awaiter$s(void 0, void 0, void 0,
30664
30783
  /**
30665
30784
  * @private
30666
30785
  */
30667
- const getInlineImageData = (image) => __awaiter$s(void 0, void 0, void 0, function* () {
30786
+ const getInlineImageData = (image) => __awaiter$t(void 0, void 0, void 0, function* () {
30668
30787
  if (image.startsWith('blob') || image.startsWith('http')) {
30669
30788
  try {
30670
30789
  const res = yield fetchBlobData(image, { abortController: new AbortController() });
@@ -30707,7 +30826,7 @@ const getSendBoxInlineImages = (sendBoxInlineImageUploads) => {
30707
30826
  return (_a = sendBoxInlineImageUploads[SEND_BOX_UPLOADS_KEY_VALUE]) === null || _a === void 0 ? void 0 : _a.map((upload) => upload.metadata);
30708
30827
  };
30709
30828
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
30710
- const inlineImageUploadHandler = (uploadTasks, adapter, strings) => __awaiter$s(void 0, void 0, void 0, function* () {
30829
+ const inlineImageUploadHandler = (uploadTasks, adapter, strings) => __awaiter$t(void 0, void 0, void 0, function* () {
30711
30830
  var _a, _b, _c;
30712
30831
  for (const task of uploadTasks) {
30713
30832
  const uploadTask = task;
@@ -30740,7 +30859,7 @@ const inlineImageUploadHandler = (uploadTasks, adapter, strings) => __awaiter$s(
30740
30859
  }
30741
30860
  });
30742
30861
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
30743
- const generateUploadTask = (imageAttributes, fileName, messageId, inlineImageUploadActionHandler) => __awaiter$s(void 0, void 0, void 0, function* () {
30862
+ const generateUploadTask = (imageAttributes, fileName, messageId, inlineImageUploadActionHandler) => __awaiter$t(void 0, void 0, void 0, function* () {
30744
30863
  if (!imageAttributes.src) {
30745
30864
  console.error('Cannot upload image - Image src is not provided');
30746
30865
  return;
@@ -30795,7 +30914,7 @@ const generateUploadTask = (imageAttributes, fileName, messageId, inlineImageUpl
30795
30914
  /**
30796
30915
  * @internal
30797
30916
  */
30798
- const onInsertInlineImageForEditBox = (imageAttributes, fileName, messageId, adapter, handleEditBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$s(void 0, void 0, void 0, function* () {
30917
+ const onInsertInlineImageForEditBox = (imageAttributes, fileName, messageId, adapter, handleEditBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$t(void 0, void 0, void 0, function* () {
30799
30918
  const uploadTask = yield generateUploadTask(imageAttributes, fileName, messageId, handleEditBoxInlineImageUploadAction);
30800
30919
  if (!uploadTask) {
30801
30920
  return;
@@ -30811,7 +30930,7 @@ const onInsertInlineImageForEditBox = (imageAttributes, fileName, messageId, ada
30811
30930
  /**
30812
30931
  * @internal
30813
30932
  */
30814
- const onInsertInlineImageForSendBox = (imageAttributes, fileName, adapter, handleSendBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$s(void 0, void 0, void 0, function* () {
30933
+ const onInsertInlineImageForSendBox = (imageAttributes, fileName, adapter, handleSendBoxInlineImageUploadAction, chatCompositeStrings) => __awaiter$t(void 0, void 0, void 0, function* () {
30815
30934
  const uploadTask = yield generateUploadTask(imageAttributes, fileName, SEND_BOX_UPLOADS_KEY_VALUE, handleSendBoxInlineImageUploadAction);
30816
30935
  if (!uploadTask) {
30817
30936
  return;
@@ -30975,7 +31094,7 @@ const getCreatedBy = (state) => { var _a; return (_a = state.thread.properties)
30975
31094
 
30976
31095
  // Copyright (c) Microsoft Corporation.
30977
31096
  // Licensed under the MIT License.
30978
- var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
31097
+ var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
30979
31098
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30980
31099
  return new (P || (P = Promise))(function (resolve, reject) {
30981
31100
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -31015,7 +31134,7 @@ const ChatScreen = (props) => {
31015
31134
  const [sendBoxInlineImageUploads, handleSendBoxInlineImageUploadAction] = React.useReducer(ImageUploadReducer, undefined);
31016
31135
  React.useEffect(() => {
31017
31136
  // Initial data should be always fetched by the composite(or external caller) instead of the adapter
31018
- const fetchData = () => __awaiter$r(void 0, void 0, void 0, function* () {
31137
+ const fetchData = () => __awaiter$s(void 0, void 0, void 0, function* () {
31019
31138
  // Fetch initial data for adapter
31020
31139
  yield adapter.fetchInitialData();
31021
31140
  // Fetch initial set of messages. Without fetching messages here, if the Composite's adapter is changed the message thread does not load new messages.
@@ -31258,7 +31377,7 @@ const ChatScreen = (props) => {
31258
31377
  }, [uploads]);
31259
31378
  const onSendMessageHandler = React.useCallback(function (content,
31260
31379
  /* @conditional-compile-remove(file-sharing-acs) */ /* @conditional-compile-remove(rich-text-editor-composite-support) */ options) {
31261
- return __awaiter$r(this, void 0, void 0, function* () {
31380
+ return __awaiter$s(this, void 0, void 0, function* () {
31262
31381
  var _a;
31263
31382
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
31264
31383
  content = updateContentStringWithUploadedInlineImages(content, sendBoxInlineImageUploads);
@@ -31287,7 +31406,7 @@ const ChatScreen = (props) => {
31287
31406
  ]);
31288
31407
  const onUpdateMessageHandler = React.useCallback(function (messageId, content,
31289
31408
  /* @conditional-compile-remove(file-sharing-acs) */ options) {
31290
- return __awaiter$r(this, void 0, void 0, function* () {
31409
+ return __awaiter$s(this, void 0, void 0, function* () {
31291
31410
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
31292
31411
  content = updateContentStringWithUploadedInlineImages(content, editBoxInlineImageUploads, messageId);
31293
31412
  yield messageThreadProps.onUpdateMessage(messageId, content,
@@ -31605,7 +31724,7 @@ const END_CALL_PAGES = [
31605
31724
 
31606
31725
  // Copyright (c) Microsoft Corporation.
31607
31726
  // Licensed under the MIT License.
31608
- var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
31727
+ var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
31609
31728
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
31610
31729
  return new (P || (P = Promise))(function (resolve, reject) {
31611
31730
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -31970,7 +32089,7 @@ const isDisabled$4 = (option) => {
31970
32089
  /**
31971
32090
  * @returns Permissions state for the camera.
31972
32091
  */
31973
- const queryCameraPermissionFromPermissionsAPI = () => __awaiter$q(void 0, void 0, void 0, function* () {
32092
+ const queryCameraPermissionFromPermissionsAPI = () => __awaiter$r(void 0, void 0, void 0, function* () {
31974
32093
  try {
31975
32094
  return (yield navigator.permissions.query({ name: 'camera' })).state;
31976
32095
  }
@@ -31983,7 +32102,7 @@ const queryCameraPermissionFromPermissionsAPI = () => __awaiter$q(void 0, void 0
31983
32102
  /**
31984
32103
  * @returns Permissions state for the microphone.
31985
32104
  */
31986
- const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$q(void 0, void 0, void 0, function* () {
32105
+ const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$r(void 0, void 0, void 0, function* () {
31987
32106
  try {
31988
32107
  return (yield navigator.permissions.query({ name: 'microphone' })).state;
31989
32108
  }
@@ -32000,7 +32119,7 @@ const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$q(void 0, vo
32000
32119
  * If permission API is not supported on this browser, permission state is set to unsupported.
32001
32120
  * @private
32002
32121
  */
32003
- const getDevicePermissionState = (setVideoState, setAudioState) => __awaiter$q(void 0, void 0, void 0, function* () {
32122
+ const getDevicePermissionState = (setVideoState, setAudioState) => __awaiter$r(void 0, void 0, void 0, function* () {
32004
32123
  const [cameraResult, microphoneResult] = yield Promise.all([
32005
32124
  queryCameraPermissionFromPermissionsAPI(),
32006
32125
  queryMicrophonePermissionFromPermissionsAPI()
@@ -32366,7 +32485,7 @@ const getVideoBackgroundImages = (state) => state.videoBackgroundImages;
32366
32485
 
32367
32486
  // Copyright (c) Microsoft Corporation.
32368
32487
  // Licensed under the MIT License.
32369
- var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
32488
+ var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
32370
32489
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
32371
32490
  return new (P || (P = Promise))(function (resolve, reject) {
32372
32491
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -32388,20 +32507,20 @@ _component) => {
32388
32507
  };
32389
32508
  const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
32390
32509
  return {
32391
- onCreateLocalStreamView: (options) => __awaiter$p(void 0, void 0, void 0, function* () {
32510
+ onCreateLocalStreamView: (options) => __awaiter$q(void 0, void 0, void 0, function* () {
32392
32511
  return yield adapter.createStreamView(undefined, options);
32393
32512
  }),
32394
- onCreateRemoteStreamView: (userId, options) => __awaiter$p(void 0, void 0, void 0, function* () {
32513
+ onCreateRemoteStreamView: (userId, options) => __awaiter$q(void 0, void 0, void 0, function* () {
32395
32514
  return yield adapter.createStreamView(userId, options);
32396
32515
  }),
32397
- onHangUp: (forEveryone) => __awaiter$p(void 0, void 0, void 0, function* () {
32516
+ onHangUp: (forEveryone) => __awaiter$q(void 0, void 0, void 0, function* () {
32398
32517
  yield adapter.leaveCall(forEveryone);
32399
32518
  }),
32400
- onToggleHold: () => __awaiter$p(void 0, void 0, void 0, function* () {
32519
+ onToggleHold: () => __awaiter$q(void 0, void 0, void 0, function* () {
32401
32520
  var _a;
32402
32521
  return ((_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.state) === 'LocalHold' ? yield adapter.resumeCall() : yield adapter.holdCall();
32403
32522
  }),
32404
- onAddParticipant: (participant, options) => __awaiter$p(void 0, void 0, void 0, function* () {
32523
+ onAddParticipant: (participant, options) => __awaiter$q(void 0, void 0, void 0, function* () {
32405
32524
  if ('communicationUserId' in participant) {
32406
32525
  return yield adapter.addParticipant(participant);
32407
32526
  }
@@ -32409,10 +32528,10 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
32409
32528
  return yield adapter.addParticipant(participant, options);
32410
32529
  }
32411
32530
  }),
32412
- onSendDtmfTone: (dtmfTone) => __awaiter$p(void 0, void 0, void 0, function* () {
32531
+ onSendDtmfTone: (dtmfTone) => __awaiter$q(void 0, void 0, void 0, function* () {
32413
32532
  yield adapter.sendDtmfTone(dtmfTone);
32414
32533
  }),
32415
- onRemoveParticipant: (userId) => __awaiter$p(void 0, void 0, void 0, function* () {
32534
+ onRemoveParticipant: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
32416
32535
  if (typeof userId === 'string') {
32417
32536
  yield adapter.removeParticipant(userId);
32418
32537
  }
@@ -32420,148 +32539,148 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
32420
32539
  yield adapter.removeParticipant(_toCommunicationIdentifier(userId));
32421
32540
  }
32422
32541
  }),
32423
- onRaiseHand: () => __awaiter$p(void 0, void 0, void 0, function* () {
32542
+ onRaiseHand: () => __awaiter$q(void 0, void 0, void 0, function* () {
32424
32543
  yield adapter.raiseHand();
32425
32544
  }),
32426
- onLowerHand: () => __awaiter$p(void 0, void 0, void 0, function* () {
32545
+ onLowerHand: () => __awaiter$q(void 0, void 0, void 0, function* () {
32427
32546
  yield adapter.lowerHand();
32428
32547
  }),
32429
- onToggleRaiseHand: () => __awaiter$p(void 0, void 0, void 0, function* () {
32548
+ onToggleRaiseHand: () => __awaiter$q(void 0, void 0, void 0, function* () {
32430
32549
  var _b;
32431
32550
  ((_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.raiseHand.localParticipantRaisedHand)
32432
32551
  ? yield adapter.lowerHand()
32433
32552
  : yield adapter.raiseHand();
32434
32553
  }),
32435
- onReactionClick: (reaction) => __awaiter$p(void 0, void 0, void 0, function* () {
32554
+ onReactionClick: (reaction) => __awaiter$q(void 0, void 0, void 0, function* () {
32436
32555
  yield adapter.onReactionClick(reaction);
32437
32556
  }),
32438
- onSelectCamera: (deviceInfo, options) => __awaiter$p(void 0, void 0, void 0, function* () {
32557
+ onSelectCamera: (deviceInfo, options) => __awaiter$q(void 0, void 0, void 0, function* () {
32439
32558
  yield adapter.setCamera(deviceInfo, options);
32440
32559
  }),
32441
- onSelectMicrophone: (deviceInfo) => __awaiter$p(void 0, void 0, void 0, function* () {
32560
+ onSelectMicrophone: (deviceInfo) => __awaiter$q(void 0, void 0, void 0, function* () {
32442
32561
  yield adapter.setMicrophone(deviceInfo);
32443
32562
  }),
32444
- onSelectSpeaker: (deviceInfo) => __awaiter$p(void 0, void 0, void 0, function* () {
32563
+ onSelectSpeaker: (deviceInfo) => __awaiter$q(void 0, void 0, void 0, function* () {
32445
32564
  yield adapter.setSpeaker(deviceInfo);
32446
32565
  }),
32447
32566
  onStartCall: (participants, options) => {
32448
32567
  const rawIds = participants.map((participant) => toFlatCommunicationIdentifier(participant));
32449
32568
  return adapter.startCall(rawIds, options);
32450
32569
  },
32451
- onStartScreenShare: () => __awaiter$p(void 0, void 0, void 0, function* () {
32570
+ onStartScreenShare: () => __awaiter$q(void 0, void 0, void 0, function* () {
32452
32571
  yield adapter.startScreenShare();
32453
32572
  }),
32454
- onStopScreenShare: () => __awaiter$p(void 0, void 0, void 0, function* () {
32573
+ onStopScreenShare: () => __awaiter$q(void 0, void 0, void 0, function* () {
32455
32574
  yield adapter.stopScreenShare();
32456
32575
  }),
32457
- onToggleCamera: (options) => __awaiter$p(void 0, void 0, void 0, function* () {
32576
+ onToggleCamera: (options) => __awaiter$q(void 0, void 0, void 0, function* () {
32458
32577
  isCameraOn(adapter.getState()) ? yield adapter.stopCamera() : yield adapter.startCamera(options);
32459
32578
  }),
32460
- onToggleMicrophone: () => __awaiter$p(void 0, void 0, void 0, function* () {
32579
+ onToggleMicrophone: () => __awaiter$q(void 0, void 0, void 0, function* () {
32461
32580
  var _c;
32462
32581
  return ((_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.isMuted) ? yield adapter.unmute() : yield adapter.mute();
32463
32582
  }),
32464
- onToggleScreenShare: () => __awaiter$p(void 0, void 0, void 0, function* () {
32583
+ onToggleScreenShare: () => __awaiter$q(void 0, void 0, void 0, function* () {
32465
32584
  var _d;
32466
32585
  return ((_d = adapter.getState().call) === null || _d === void 0 ? void 0 : _d.isScreenSharingOn)
32467
32586
  ? yield adapter.stopScreenShare()
32468
32587
  : yield adapter.startScreenShare();
32469
32588
  }),
32470
- onStartLocalVideo: () => __awaiter$p(void 0, void 0, void 0, function* () {
32589
+ onStartLocalVideo: () => __awaiter$q(void 0, void 0, void 0, function* () {
32471
32590
  if (adapter.getState().call) {
32472
32591
  return adapter.startCamera();
32473
32592
  }
32474
32593
  }),
32475
- onDisposeLocalStreamView: () => __awaiter$p(void 0, void 0, void 0, function* () {
32594
+ onDisposeLocalStreamView: () => __awaiter$q(void 0, void 0, void 0, function* () {
32476
32595
  return adapter.disposeLocalVideoStreamView();
32477
32596
  }),
32478
- onDisposeRemoteStreamView: (userId) => __awaiter$p(void 0, void 0, void 0, function* () {
32597
+ onDisposeRemoteStreamView: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
32479
32598
  return adapter.disposeStreamView(userId);
32480
32599
  }),
32481
- onDisposeRemoteScreenShareStreamView: (userId) => __awaiter$p(void 0, void 0, void 0, function* () {
32600
+ onDisposeRemoteScreenShareStreamView: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
32482
32601
  return adapter.disposeScreenShareStreamView(userId);
32483
32602
  }),
32484
- onDisposeLocalScreenShareStreamView: () => __awaiter$p(void 0, void 0, void 0, function* () {
32603
+ onDisposeLocalScreenShareStreamView: () => __awaiter$q(void 0, void 0, void 0, function* () {
32485
32604
  return adapter.disposeScreenShareStreamView('');
32486
32605
  }),
32487
- onDisposeRemoteVideoStreamView: (userId) => __awaiter$p(void 0, void 0, void 0, function* () {
32606
+ onDisposeRemoteVideoStreamView: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
32488
32607
  return adapter.disposeRemoteVideoStreamView(userId);
32489
32608
  }),
32490
32609
  /* @conditional-compile-remove(call-readiness) */
32491
- askDevicePermission: (constrain) => __awaiter$p(void 0, void 0, void 0, function* () {
32610
+ askDevicePermission: (constrain) => __awaiter$q(void 0, void 0, void 0, function* () {
32492
32611
  yield adapter.askDevicePermission(constrain);
32493
32612
  }),
32494
- onRemoveVideoBackgroundEffects: () => __awaiter$p(void 0, void 0, void 0, function* () {
32613
+ onRemoveVideoBackgroundEffects: () => __awaiter$q(void 0, void 0, void 0, function* () {
32495
32614
  return yield adapter.stopVideoBackgroundEffects();
32496
32615
  }),
32497
- onBlurVideoBackground: (backgroundBlurConfig) => __awaiter$p(void 0, void 0, void 0, function* () {
32616
+ onBlurVideoBackground: (backgroundBlurConfig) => __awaiter$q(void 0, void 0, void 0, function* () {
32498
32617
  const blurConfig = Object.assign({ effectName: 'blur' }, backgroundBlurConfig);
32499
32618
  return yield adapter.startVideoBackgroundEffect(blurConfig);
32500
32619
  }),
32501
- onReplaceVideoBackground: (backgroundReplacementConfig) => __awaiter$p(void 0, void 0, void 0, function* () {
32620
+ onReplaceVideoBackground: (backgroundReplacementConfig) => __awaiter$q(void 0, void 0, void 0, function* () {
32502
32621
  const replacementConfig = Object.assign({ effectName: 'replacement' }, backgroundReplacementConfig);
32503
32622
  return yield adapter.startVideoBackgroundEffect(replacementConfig);
32504
32623
  }),
32505
- onStartNoiseSuppressionEffect: () => __awaiter$p(void 0, void 0, void 0, function* () {
32624
+ onStartNoiseSuppressionEffect: () => __awaiter$q(void 0, void 0, void 0, function* () {
32506
32625
  return yield adapter.startNoiseSuppressionEffect();
32507
32626
  }),
32508
- onStopNoiseSuppressionEffect: () => __awaiter$p(void 0, void 0, void 0, function* () {
32627
+ onStopNoiseSuppressionEffect: () => __awaiter$q(void 0, void 0, void 0, function* () {
32509
32628
  return yield adapter.stopNoiseSuppressionEffect();
32510
32629
  }),
32511
- onStartCaptions: (options) => __awaiter$p(void 0, void 0, void 0, function* () {
32630
+ onStartCaptions: (options) => __awaiter$q(void 0, void 0, void 0, function* () {
32512
32631
  yield adapter.startCaptions(options);
32513
32632
  }),
32514
- onStopCaptions: () => __awaiter$p(void 0, void 0, void 0, function* () {
32633
+ onStopCaptions: () => __awaiter$q(void 0, void 0, void 0, function* () {
32515
32634
  yield adapter.stopCaptions();
32516
32635
  }),
32517
- onSetSpokenLanguage: (language) => __awaiter$p(void 0, void 0, void 0, function* () {
32636
+ onSetSpokenLanguage: (language) => __awaiter$q(void 0, void 0, void 0, function* () {
32518
32637
  yield adapter.setSpokenLanguage(language);
32519
32638
  }),
32520
- onSetCaptionLanguage: (language) => __awaiter$p(void 0, void 0, void 0, function* () {
32639
+ onSetCaptionLanguage: (language) => __awaiter$q(void 0, void 0, void 0, function* () {
32521
32640
  yield adapter.setCaptionLanguage(language);
32522
32641
  }),
32523
- onSubmitSurvey: (survey) => __awaiter$p(void 0, void 0, void 0, function* () {
32642
+ onSubmitSurvey: (survey) => __awaiter$q(void 0, void 0, void 0, function* () {
32524
32643
  return yield adapter.submitSurvey(survey);
32525
32644
  }),
32526
- onStartSpotlight: (userIds) => __awaiter$p(void 0, void 0, void 0, function* () {
32645
+ onStartSpotlight: (userIds) => __awaiter$q(void 0, void 0, void 0, function* () {
32527
32646
  yield adapter.startSpotlight(userIds);
32528
32647
  }),
32529
- onStopSpotlight: (userIds) => __awaiter$p(void 0, void 0, void 0, function* () {
32648
+ onStopSpotlight: (userIds) => __awaiter$q(void 0, void 0, void 0, function* () {
32530
32649
  yield adapter.stopSpotlight(userIds);
32531
32650
  }),
32532
- onStopAllSpotlight: () => __awaiter$p(void 0, void 0, void 0, function* () {
32651
+ onStopAllSpotlight: () => __awaiter$q(void 0, void 0, void 0, function* () {
32533
32652
  yield adapter.stopAllSpotlight();
32534
32653
  }),
32535
32654
  onStartLocalSpotlight: (capabilities === null || capabilities === void 0 ? void 0 : capabilities.spotlightParticipant.isPresent)
32536
- ? () => __awaiter$p(void 0, void 0, void 0, function* () {
32655
+ ? () => __awaiter$q(void 0, void 0, void 0, function* () {
32537
32656
  yield adapter.startSpotlight();
32538
32657
  })
32539
32658
  : undefined,
32540
- onStopLocalSpotlight: () => __awaiter$p(void 0, void 0, void 0, function* () {
32659
+ onStopLocalSpotlight: () => __awaiter$q(void 0, void 0, void 0, function* () {
32541
32660
  yield adapter.stopSpotlight();
32542
32661
  }),
32543
32662
  onStartRemoteSpotlight: (capabilities === null || capabilities === void 0 ? void 0 : capabilities.spotlightParticipant.isPresent)
32544
- ? (userIds) => __awaiter$p(void 0, void 0, void 0, function* () {
32663
+ ? (userIds) => __awaiter$q(void 0, void 0, void 0, function* () {
32545
32664
  yield adapter.startSpotlight(userIds);
32546
32665
  })
32547
32666
  : undefined,
32548
32667
  onStopRemoteSpotlight: (capabilities === null || capabilities === void 0 ? void 0 : capabilities.removeParticipantsSpotlight.isPresent)
32549
- ? (userIds) => __awaiter$p(void 0, void 0, void 0, function* () {
32668
+ ? (userIds) => __awaiter$q(void 0, void 0, void 0, function* () {
32550
32669
  yield adapter.stopSpotlight(userIds);
32551
32670
  })
32552
32671
  : undefined,
32553
- onMuteParticipant: (userId) => __awaiter$p(void 0, void 0, void 0, function* () {
32672
+ onMuteParticipant: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
32554
32673
  yield adapter.muteParticipant(userId);
32555
32674
  }),
32556
- onMuteAllRemoteParticipants: () => __awaiter$p(void 0, void 0, void 0, function* () {
32675
+ onMuteAllRemoteParticipants: () => __awaiter$q(void 0, void 0, void 0, function* () {
32557
32676
  yield adapter.muteAllRemoteParticipants();
32558
32677
  }),
32559
32678
  /* @conditional-compile-remove(together-mode) */
32560
- onCreateTogetherModeStreamView: (options) => __awaiter$p(void 0, void 0, void 0, function* () {
32679
+ onCreateTogetherModeStreamView: (options) => __awaiter$q(void 0, void 0, void 0, function* () {
32561
32680
  return yield adapter.createTogetherModeStreamViews(options);
32562
32681
  }),
32563
32682
  /* @conditional-compile-remove(together-mode) */
32564
- onStartTogetherMode: () => __awaiter$p(void 0, void 0, void 0, function* () {
32683
+ onStartTogetherMode: () => __awaiter$q(void 0, void 0, void 0, function* () {
32565
32684
  return yield adapter.startTogetherMode();
32566
32685
  }),
32567
32686
  /* @conditional-compile-remove(together-mode) */
@@ -32569,7 +32688,7 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
32569
32688
  return adapter.setTogetherModeSceneSize(width, height);
32570
32689
  },
32571
32690
  /* @conditional-compile-remove(together-mode) */
32572
- onDisposeTogetherModeStreamViews: () => __awaiter$p(void 0, void 0, void 0, function* () {
32691
+ onDisposeTogetherModeStreamViews: () => __awaiter$q(void 0, void 0, void 0, function* () {
32573
32692
  return yield adapter.disposeTogetherModeStreamViews();
32574
32693
  })
32575
32694
  };
@@ -32706,7 +32825,7 @@ const MoreButton = (props) => {
32706
32825
 
32707
32826
  // Copyright (c) Microsoft Corporation.
32708
32827
  // Licensed under the MIT License.
32709
- var __awaiter$o = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
32828
+ var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
32710
32829
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
32711
32830
  return new (P || (P = Promise))(function (resolve, reject) {
32712
32831
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -32728,7 +32847,7 @@ const CaptionsBannerMoreButton = (props) => {
32728
32847
  tooltipOffContent: localeStrings.strings.call.captionsBannerMoreButtonTooltip
32729
32848
  }), [localeStrings]);
32730
32849
  const moreButtonContextualMenuItems = [];
32731
- const startCaptions = React.useCallback(() => __awaiter$o(void 0, void 0, void 0, function* () {
32850
+ const startCaptions = React.useCallback(() => __awaiter$p(void 0, void 0, void 0, function* () {
32732
32851
  yield startCaptionsButtonHandlers.onStartCaptions({
32733
32852
  spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage
32734
32853
  });
@@ -32941,7 +33060,7 @@ const buttonTextStyles = { label: { fontSize: '0.875rem' } };
32941
33060
 
32942
33061
  // Copyright (c) Microsoft Corporation.
32943
33062
  // Licensed under the MIT License.
32944
- var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
33063
+ var __awaiter$o = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
32945
33064
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
32946
33065
  return new (P || (P = Promise))(function (resolve, reject) {
32947
33066
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -32988,7 +33107,7 @@ const EndCall = (props) => {
32988
33107
  onHangUp && onHangUp(hangUpForEveryone);
32989
33108
  toggleConfirm();
32990
33109
  }, [onHangUp, toggleConfirm]);
32991
- const hangUpOverride = React.useCallback((forEveryone) => __awaiter$n(void 0, void 0, void 0, function* () {
33110
+ const hangUpOverride = React.useCallback((forEveryone) => __awaiter$o(void 0, void 0, void 0, function* () {
32992
33111
  if (props.mobileView ||
32993
33112
  forEveryone === false /* value being false(not undefined) because it comes from endCall option */) {
32994
33113
  onHangUp();
@@ -33370,7 +33489,7 @@ const callStatusSelector = reselect.createSelector([getCallStatus, getIsScreenSh
33370
33489
 
33371
33490
  // Copyright (c) Microsoft Corporation.
33372
33491
  // Licensed under the MIT License.
33373
- var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
33492
+ var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
33374
33493
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
33375
33494
  return new (P || (P = Promise))(function (resolve, reject) {
33376
33495
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -33401,7 +33520,7 @@ const CallControls = (props) => {
33401
33520
  const localeStrings = useLocale();
33402
33521
  const [isDeepNoiseSuppressionOn, setDeepNoiseSuppressionOn] = React.useState(false);
33403
33522
  const adapter = useAdapter();
33404
- const startDeepNoiseSuppression = React.useCallback(() => __awaiter$m(void 0, void 0, void 0, function* () {
33523
+ const startDeepNoiseSuppression = React.useCallback(() => __awaiter$n(void 0, void 0, void 0, function* () {
33405
33524
  yield adapter.startNoiseSuppressionEffect();
33406
33525
  }), [adapter]);
33407
33526
  const deepNoiseSuppresionEffectsDependency = useSelector$1(getDeepNoiseSuppresionEffectsDependency);
@@ -33418,7 +33537,7 @@ const CallControls = (props) => {
33418
33537
  const showNoiseSuppressionButton = !!(deepNoiseSuppresionEffectsDependency &&
33419
33538
  !hideDeepNoiseSuppressionButton &&
33420
33539
  !isSafari);
33421
- const onClickNoiseSuppression = React.useCallback(() => __awaiter$m(void 0, void 0, void 0, function* () {
33540
+ const onClickNoiseSuppression = React.useCallback(() => __awaiter$n(void 0, void 0, void 0, function* () {
33422
33541
  if (isDeepNoiseSuppressionOn) {
33423
33542
  yield adapter.stopNoiseSuppressionEffect();
33424
33543
  setDeepNoiseSuppressionOn(false);
@@ -33814,7 +33933,7 @@ const showDtmfDialer = (callees, remoteParticipants) => {
33814
33933
 
33815
33934
  // Copyright (c) Microsoft Corporation.
33816
33935
  // Licensed under the MIT License.
33817
- var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
33936
+ var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
33818
33937
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
33819
33938
  return new (P || (P = Promise))(function (resolve, reject) {
33820
33939
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -33833,7 +33952,7 @@ const DesktopMoreButton = (props) => {
33833
33952
  const holdButtonProps = usePropsFor$1(HoldButton);
33834
33953
  const startCaptionsButtonProps = useAdaptedSelector(_startCaptionsButtonSelector);
33835
33954
  const startCaptionsButtonHandlers = useHandlers();
33836
- const startCaptions = React.useCallback(() => __awaiter$l(void 0, void 0, void 0, function* () {
33955
+ const startCaptions = React.useCallback(() => __awaiter$m(void 0, void 0, void 0, function* () {
33837
33956
  yield startCaptionsButtonHandlers.onStartCaptions({
33838
33957
  spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage
33839
33958
  });
@@ -34325,7 +34444,7 @@ const modalLayerHostStyle = {
34325
34444
 
34326
34445
  // Copyright (c) Microsoft Corporation.
34327
34446
  // Licensed under the MIT License.
34328
- var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
34447
+ var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
34329
34448
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34330
34449
  return new (P || (P = Promise))(function (resolve, reject) {
34331
34450
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -34366,7 +34485,7 @@ const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
34366
34485
  /**
34367
34486
  * @private
34368
34487
  */
34369
- const busyWait = (checkCondition, retryLimit) => __awaiter$k(void 0, void 0, void 0, function* () {
34488
+ const busyWait = (checkCondition, retryLimit) => __awaiter$l(void 0, void 0, void 0, function* () {
34370
34489
  const delayMs = 500;
34371
34490
  let retryCount = 0;
34372
34491
  while (!checkCondition()) {
@@ -34455,7 +34574,7 @@ const timerTextStyle = {
34455
34574
 
34456
34575
  // Copyright (c) Microsoft Corporation.
34457
34576
  // Licensed under the MIT License.
34458
- var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
34577
+ var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
34459
34578
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34460
34579
  return new (P || (P = Promise))(function (resolve, reject) {
34461
34580
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -34552,7 +34671,7 @@ const CommonCallControlBar = (props) => {
34552
34671
  tooltipContent: callStrings.exitSpotlightButtonTooltip
34553
34672
  }), [callStrings]);
34554
34673
  const [isDeepNoiseSuppressionOn, setDeepNoiseSuppressionOn] = React.useState(false);
34555
- const startDeepNoiseSuppression = React.useCallback(() => __awaiter$j(void 0, void 0, void 0, function* () {
34674
+ const startDeepNoiseSuppression = React.useCallback(() => __awaiter$k(void 0, void 0, void 0, function* () {
34556
34675
  yield props.callAdapter.startNoiseSuppressionEffect();
34557
34676
  }), [props.callAdapter]);
34558
34677
  const environmentInfo = useSelector$1(getEnvironmentInfo);
@@ -34569,7 +34688,7 @@ const CommonCallControlBar = (props) => {
34569
34688
  !isSafari
34570
34689
  ? true
34571
34690
  : false;
34572
- const onClickNoiseSuppression = React.useCallback(() => __awaiter$j(void 0, void 0, void 0, function* () {
34691
+ const onClickNoiseSuppression = React.useCallback(() => __awaiter$k(void 0, void 0, void 0, function* () {
34573
34692
  if (isDeepNoiseSuppressionOn) {
34574
34693
  yield props.callAdapter.stopNoiseSuppressionEffect();
34575
34694
  setDeepNoiseSuppressionOn(false);
@@ -34647,7 +34766,7 @@ const CommonCallControlBar = (props) => {
34647
34766
  !props.mobileView &&
34648
34767
  assignedBreakoutRoom &&
34649
34768
  assignedBreakoutRoom.state === 'open' &&
34650
- assignedBreakoutRoom.call && (React.createElement(react.PrimaryButton, { text: callStrings.joinBreakoutRoomButtonLabel, onClick: () => __awaiter$j(void 0, void 0, void 0, function* () {
34769
+ assignedBreakoutRoom.call && (React.createElement(react.PrimaryButton, { text: callStrings.joinBreakoutRoomButtonLabel, onClick: () => __awaiter$k(void 0, void 0, void 0, function* () {
34651
34770
  assignedBreakoutRoom.join();
34652
34771
  }), styles: commonButtonStyles })),
34653
34772
  microphoneButtonIsEnabled && (React.createElement(Microphone, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView, disabled: props.disableButtonsForHoldScreen || isDisabled$4(options.microphoneButton), disableTooltip: props.mobileView, onClickNoiseSuppression: onClickNoiseSuppression, isDeepNoiseSuppressionOn: isDeepNoiseSuppressionOn, showNoiseSuppressionButton: showNoiseSuppressionButton })),
@@ -34920,7 +35039,7 @@ const SpokenLanguageSettingsDrawer = (props) => {
34920
35039
 
34921
35040
  // Copyright (c) Microsoft Corporation.
34922
35041
  // Licensed under the MIT License.
34923
- var __awaiter$i = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
35042
+ var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
34924
35043
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34925
35044
  return new (P || (P = Promise))(function (resolve, reject) {
34926
35045
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -34963,7 +35082,7 @@ const MoreDrawer = (props) => {
34963
35082
  if (props.reactionResources !== undefined) {
34964
35083
  drawerMenuItems.push({
34965
35084
  itemKey: 'reactions',
34966
- onRendererContent: () => (React.createElement(_ReactionDrawerMenuItem, { onReactionClick: (reaction) => __awaiter$i(void 0, void 0, void 0, function* () {
35085
+ onRendererContent: () => (React.createElement(_ReactionDrawerMenuItem, { onReactionClick: (reaction) => __awaiter$j(void 0, void 0, void 0, function* () {
34967
35086
  var _h;
34968
35087
  (_h = props.onReactionClick) === null || _h === void 0 ? void 0 : _h.call(props, reaction);
34969
35088
  onLightDismiss();
@@ -35185,7 +35304,7 @@ const MoreDrawer = (props) => {
35185
35304
  const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = React.useState(false);
35186
35305
  const [currentSpokenLanguage, setCurrentSpokenLanguage] = React.useState((_f = captionSettingsProp.currentSpokenLanguage) !== null && _f !== void 0 ? _f : 'en-us');
35187
35306
  const [currentCaptionLanguage, setCurrentCaptionLanguage] = React.useState((_g = captionSettingsProp.currentCaptionLanguage) !== null && _g !== void 0 ? _g : _spokenLanguageToCaptionLanguage[currentSpokenLanguage]);
35188
- const onToggleChange = React.useCallback(() => __awaiter$i(void 0, void 0, void 0, function* () {
35307
+ const onToggleChange = React.useCallback(() => __awaiter$j(void 0, void 0, void 0, function* () {
35189
35308
  if (!captionSettingsProp.isCaptionsFeatureActive) {
35190
35309
  yield startCaptionsButtonHandlers.onStartCaptions({
35191
35310
  spokenLanguage: currentSpokenLanguage
@@ -35619,7 +35738,7 @@ const SidePaneHeader = (props) => {
35619
35738
  return (React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", styles: sidePaneHeaderContainerStyles, verticalAlign: "center" },
35620
35739
  React.createElement(react.Stack.Item, { role: "heading", styles: sidePaneHeaderStyles, "aria-label": props.headingText, "aria-level": 2 }, props.headingText),
35621
35740
  React.createElement(react.Stack.Item, null,
35622
- React.createElement(react.CommandBarButton, { ariaLabel: props.dismissSidePaneButtonAriaLabel, styles: sidePaneCloseButtonStyles, iconProps: { iconName: 'cancel' }, onClick: props.onClose }))));
35741
+ React.createElement(react.CommandBarButton, { ariaLabel: props.dismissSidePaneButtonAriaLabel, styles: sidePaneCloseButtonStyles, iconProps: { iconName: 'cancel' }, onClick: props.onClose, autoFocus: true }))));
35623
35742
  };
35624
35743
  const SidePaneMobileHeader = (props) => {
35625
35744
  const { headingText, dismissSidePaneButtonAriaLabel, dismissSidePaneButtonAriaDescription, onClose } = props;
@@ -35956,7 +36075,7 @@ const AddPeopleDropdown = (props) => {
35956
36075
  return (React.createElement(react.Stack, null,
35957
36076
  React.createElement(Announcer$1, { ariaLive: 'assertive', announcementString: announcerStrings }),
35958
36077
  defaultMenuProps.items.length > 0 && (React.createElement(react.Stack.Item, { styles: copyLinkButtonContainerStyles },
35959
- React.createElement(react.PrimaryButton, { id: calloutButtonId, onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: "PeoplePaneAddPerson" }), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-add-people-button" }),
36078
+ React.createElement(react.PrimaryButton, { autoFocus: true, id: calloutButtonId, onClick: setDrawerMenuItemsForAddPeople, styles: copyLinkButtonStylesThemed, onRenderIcon: () => React.createElement(CallWithChatCompositeIcon, { iconName: "PeoplePaneAddPerson" }), text: strings.peoplePaneAddPeopleButtonLabel, "data-ui-id": "call-add-people-button" }),
35960
36079
  inviteLinkCopiedRecently && (React.createElement(CalloutWithIcon, { targetId: calloutButtonId, text: (_a = strings.copyInviteLinkButtonActionedLabel) !== null && _a !== void 0 ? _a : '', doNotLayer: true })))),
35961
36080
  addPeopleDrawerMenuItems.length > 0 && (React.createElement(react.Stack, { styles: drawerContainerStyles(), "data-ui-id": "call-add-people-dropdown" },
35962
36081
  React.createElement(_DrawerMenu, { disableMaxHeight: true, onLightDismiss: () => setAddPeopleDrawerMenuItems([]), items: addPeopleDrawerMenuItems }))),
@@ -36015,7 +36134,7 @@ const AddPeopleButton = (props) => {
36015
36134
 
36016
36135
  // Copyright (c) Microsoft Corporation.
36017
36136
  // Licensed under the MIT License.
36018
- var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
36137
+ var __awaiter$i = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
36019
36138
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
36020
36139
  return new (P || (P = Promise))(function (resolve, reject) {
36021
36140
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -36036,10 +36155,10 @@ const PeoplePaneContent = (props) => {
36036
36155
  return localeStrings.strings.call;
36037
36156
  };
36038
36157
  const strings = getStrings();
36039
- const removeParticipantFromCall = React.useCallback((participantId) => __awaiter$h(void 0, void 0, void 0, function* () {
36158
+ const removeParticipantFromCall = React.useCallback((participantId) => __awaiter$i(void 0, void 0, void 0, function* () {
36040
36159
  yield adapter.removeParticipant(participantId);
36041
36160
  }), [adapter]);
36042
- const addParticipantToCall = React.useCallback((participant, options) => __awaiter$h(void 0, void 0, void 0, function* () {
36161
+ const addParticipantToCall = React.useCallback((participant, options) => __awaiter$i(void 0, void 0, void 0, function* () {
36043
36162
  yield adapter.addParticipant(participant, options);
36044
36163
  }), [adapter]);
36045
36164
  const participantListDefaultProps = usePropsFor$1(ParticipantList$n);
@@ -36070,7 +36189,7 @@ const PeoplePaneContent = (props) => {
36070
36189
  return drawerMenuItems && drawerMenuItems.length > 0 ? () => setDrawerMenuItems(drawerMenuItems) : undefined;
36071
36190
  }, [participantListHeadingMoreButtonProps === null || participantListHeadingMoreButtonProps === void 0 ? void 0 : participantListHeadingMoreButtonProps.items, setDrawerMenuItems]);
36072
36191
  const participantListProps = React.useMemo(() => {
36073
- const onRemoveAParticipant = (participantId) => __awaiter$h(void 0, void 0, void 0, function* () { return removeParticipantFromCall(participantId); });
36192
+ const onRemoveAParticipant = (participantId) => __awaiter$i(void 0, void 0, void 0, function* () { return removeParticipantFromCall(participantId); });
36074
36193
  return Object.assign(Object.assign({}, participantListDefaultProps), {
36075
36194
  // Passing undefined callback for mobile to avoid context menus for participants in ParticipantList are clicked
36076
36195
  onRemoveParticipant: props.mobileView ? undefined : onRemoveAParticipant,
@@ -36616,7 +36735,7 @@ const localVideoSelector = reselect__namespace.createSelector([callStatusSelecto
36616
36735
 
36617
36736
  // Copyright (c) Microsoft Corporation.
36618
36737
  // Licensed under the MIT License.
36619
- var __awaiter$g = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
36738
+ var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
36620
36739
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
36621
36740
  return new (P || (P = Promise))(function (resolve, reject) {
36622
36741
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -36682,7 +36801,7 @@ const VideoEffectsPaneContent = (props) => {
36682
36801
  strings.blurBackgroundTooltip,
36683
36802
  props.backgroundImages
36684
36803
  ]);
36685
- const onEffectChange = React.useCallback((effectKey) => __awaiter$g(void 0, void 0, void 0, function* () {
36804
+ const onEffectChange = React.useCallback((effectKey) => __awaiter$h(void 0, void 0, void 0, function* () {
36686
36805
  if (effectKey === 'blur') {
36687
36806
  const blurEffect = {
36688
36807
  effectName: effectKey
@@ -36734,8 +36853,8 @@ const VideoEffectsPaneTrampoline = (onDismissError, updateFocusHandle, activeVid
36734
36853
  const showWarning = !isCameraOn && selectedEffect !== 'none';
36735
36854
  const locale = useLocale();
36736
36855
  return (React.createElement(react.Stack, { tokens: { childrenGap: '0.75rem' }, className: react.mergeStyles({ paddingLeft: '0.5rem' }) },
36737
- activeVideoEffectError && isCameraOn && (React.createElement(react.MessageBar, { messageBarType: react.MessageBarType.error, onDismiss: () => onDismissError(activeVideoEffectError) }, locale.strings.call.unableToStartVideoEffect)),
36738
- showWarning && (React.createElement(react.MessageBar, { messageBarType: react.MessageBarType.warning }, locale.strings.call.cameraOffBackgroundEffectWarningText)),
36856
+ activeVideoEffectError && isCameraOn && (React.createElement(react.MessageBar, { messageBarType: react.MessageBarType.error, onDismiss: () => onDismissError(activeVideoEffectError), role: "alert", "aria-live": "assertive" }, locale.strings.call.unableToStartVideoEffect)),
36857
+ showWarning && (React.createElement(react.MessageBar, { messageBarType: react.MessageBarType.warning, role: "alert", "aria-live": "assertive" }, locale.strings.call.cameraOffBackgroundEffectWarningText)),
36739
36858
  React.createElement(_VideoBackgroundEffectsPicker, { label: locale.strings.call.videoEffectsPaneBackgroundSelectionTitle, styles: backgroundPickerStyles, options: selectableVideoEffects !== null && selectableVideoEffects !== void 0 ? selectableVideoEffects : [], onChange: onEffectChange, selectedEffectKey: selectedEffect, componentRef: updateFocusHandle })));
36740
36859
  };
36741
36860
  const backgroundPickerStyles = {
@@ -37141,7 +37260,7 @@ const messageBarStyles = {
37141
37260
 
37142
37261
  // Copyright (c) Microsoft Corporation.
37143
37262
  // Licensed under the MIT License.
37144
- var __awaiter$f = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
37263
+ var __awaiter$g = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
37145
37264
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37146
37265
  return new (P || (P = Promise))(function (resolve, reject) {
37147
37266
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -37173,7 +37292,7 @@ const useLocalSpotlightCallbacksWithPrompt = (onStartLocalSpotlight, onStopLocal
37173
37292
  }, [onStartLocalSpotlight, onStopLocalSpotlight, setIsPromptOpen, setPromptProps, strings]);
37174
37293
  };
37175
37294
  const getStartLocalSpotlightWithPromptCallback = (onStartSpotlight, setIsPromptOpen, setPromptProps, strings) => {
37176
- return () => __awaiter$f(void 0, void 0, void 0, function* () {
37295
+ return () => __awaiter$g(void 0, void 0, void 0, function* () {
37177
37296
  setPromptProps({
37178
37297
  heading: strings.spotlightPrompt.startSpotlightHeading,
37179
37298
  text: strings.spotlightPrompt.startSpotlightOnSelfText,
@@ -37190,7 +37309,7 @@ const getStartLocalSpotlightWithPromptCallback = (onStartSpotlight, setIsPromptO
37190
37309
  });
37191
37310
  };
37192
37311
  const getStopLocalSpotlightWithPromptCallback = (onStopSpotlight, setIsPromptOpen, setPromptProps, strings) => {
37193
- return () => __awaiter$f(void 0, void 0, void 0, function* () {
37312
+ return () => __awaiter$g(void 0, void 0, void 0, function* () {
37194
37313
  setPromptProps({
37195
37314
  heading: strings.spotlightPrompt.stopSpotlightOnSelfHeading,
37196
37315
  text: strings.spotlightPrompt.stopSpotlightOnSelfText,
@@ -37228,7 +37347,7 @@ const useRemoteSpotlightCallbacksWithPrompt = (onStartRemoteSpotlight, onStopRem
37228
37347
  }, [onStartRemoteSpotlight, onStopRemoteSpotlight, setIsPromptOpen, setPromptProps, strings]);
37229
37348
  };
37230
37349
  const getStartRemoteSpotlightWithPromptCallback = (onStartSpotlight, setIsPromptOpen, setPromptProps, strings) => {
37231
- return (userIds) => __awaiter$f(void 0, void 0, void 0, function* () {
37350
+ return (userIds) => __awaiter$g(void 0, void 0, void 0, function* () {
37232
37351
  if (userIds.length > 1) {
37233
37352
  onStartSpotlight(userIds);
37234
37353
  }
@@ -37248,7 +37367,7 @@ const getStartRemoteSpotlightWithPromptCallback = (onStartSpotlight, setIsPrompt
37248
37367
  });
37249
37368
  };
37250
37369
  const getStopRemoteSpotlightWithPromptCallback = (onStopSpotlight, setIsPromptOpen, setPromptProps, strings) => {
37251
- return (userIds) => __awaiter$f(void 0, void 0, void 0, function* () {
37370
+ return (userIds) => __awaiter$g(void 0, void 0, void 0, function* () {
37252
37371
  if (userIds.length > 1) {
37253
37372
  onStopSpotlight(userIds);
37254
37373
  }
@@ -37286,7 +37405,7 @@ const useStopAllSpotlightCallbackWithPrompt = (stopAllSpotlight, setIsPromptOpen
37286
37405
  }, [stopAllSpotlight, setIsPromptOpen, setPromptProps, strings]);
37287
37406
  };
37288
37407
  const getStopAllSpotlightCallbackWithPromptCallback = (stopAllSpotlight, setIsPromptOpen, setPromptProps, strings) => {
37289
- return () => __awaiter$f(void 0, void 0, void 0, function* () {
37408
+ return () => __awaiter$g(void 0, void 0, void 0, function* () {
37290
37409
  setPromptProps({
37291
37410
  heading: strings.spotlightPrompt.stopAllSpotlightHeading,
37292
37411
  text: strings.spotlightPrompt.stopAllSpotlightText,
@@ -38080,7 +38199,7 @@ const DtmfDialpadContentTimerStyles = {
38080
38199
 
38081
38200
  // Copyright (c) Microsoft Corporation.
38082
38201
  // Licensed under the MIT License.
38083
- var __awaiter$e = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
38202
+ var __awaiter$f = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
38084
38203
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38085
38204
  return new (P || (P = Promise))(function (resolve, reject) {
38086
38205
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -38109,7 +38228,7 @@ const DtmfDialpadPageContent = (props) => {
38109
38228
  React.createElement(react.Stack, { verticalAlign: 'center', style: { margin: 'auto' } },
38110
38229
  React.createElement(DtmfDialerContentTimer, null),
38111
38230
  React.createElement(react.Text, { style: { margin: 'auto' } }, calleeName && calleeName !== 'Unnamed participant' ? calleeName === null || calleeName === void 0 ? void 0 : calleeName.toString() : ''),
38112
- React.createElement(Dialpad, { onSendDtmfTone: (tone) => __awaiter$e(void 0, void 0, void 0, function* () {
38231
+ React.createElement(Dialpad, { onSendDtmfTone: (tone) => __awaiter$f(void 0, void 0, void 0, function* () {
38113
38232
  yield adapter.sendDtmfTone(tone);
38114
38233
  }), longPressTrigger: props.mobileView ? 'touch' : 'mouseAndTouch', dialpadMode: 'dtmf', dtmfAudioContext: props.compositeAudioContext }))));
38115
38234
  };
@@ -38612,6 +38731,15 @@ const logoStyles = (shape) => ({
38612
38731
 
38613
38732
  // Copyright (c) Microsoft Corporation.
38614
38733
  // Licensed under the MIT License.
38734
+ var __awaiter$e = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
38735
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38736
+ return new (P || (P = Promise))(function (resolve, reject) {
38737
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
38738
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
38739
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
38740
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
38741
+ });
38742
+ };
38615
38743
  const getDropDownList = (list) => {
38616
38744
  // Remove duplicates
38617
38745
  const noDuplicates = new Map();
@@ -38700,15 +38828,15 @@ const LocalDeviceSettings = (props) => {
38700
38828
  : props.cameras
38701
38829
  ? (_a = props.cameras[0]) === null || _a === void 0 ? void 0 : _a.id
38702
38830
  : ''
38703
- : 'deniedOrUnknown', onChange: (event, option, index) => {
38831
+ : 'deniedOrUnknown', onChange: (event, option, index) => __awaiter$e(void 0, void 0, void 0, function* () {
38704
38832
  const camera = props.cameras[index !== null && index !== void 0 ? index : 0];
38705
38833
  if (camera) {
38706
- props.onSelectCamera(camera, localVideoViewOptions);
38834
+ yield props.onSelectCamera(camera, localVideoViewOptions);
38707
38835
  }
38708
38836
  else {
38709
38837
  console.error('No cameras available');
38710
38838
  }
38711
- }, onRenderTitle: (props) => onRenderTitle('Camera', props) }));
38839
+ }), onRenderTitle: (props) => onRenderTitle('Camera', props) }));
38712
38840
  const micGrantedDropdown = (React.createElement(React.Fragment, null, roleCanUseMic && (React.createElement(react.Dropdown, { "aria-labelledby": soundLabelId, placeholder: hasMicrophones ? defaultPlaceHolder : noMicLabel, styles: dropDownStyles(theme), disabled: !micPermissionGranted || !hasMicrophones, errorMessage: props.microphonePermissionGranted === undefined || props.microphonePermissionGranted
38713
38841
  ? undefined
38714
38842
  : locale.strings.call.microphonePermissionDenied, options: micPermissionGranted ? getDropDownList(props.microphones) : [{ key: 'deniedOrUnknown', text: '' }], defaultSelectedKey: micPermissionGranted
@@ -38910,6 +39038,7 @@ var __awaiter$d = (window && window.__awaiter) || function (thisArg, _arguments,
38910
39038
  * @private
38911
39039
  */
38912
39040
  const LocalPreview = (props) => {
39041
+ var _a;
38913
39042
  const locale = useLocale();
38914
39043
  const cameraButtonProps = usePropsFor$1(CameraButton);
38915
39044
  const localPreviewProps = useSelector$1(localPreviewSelector);
@@ -38926,6 +39055,8 @@ const LocalPreview = (props) => {
38926
39055
  devicesButtonProps.speakers.length === 0;
38927
39056
  const hasCameras = devicesButtonProps.cameras.length > 0;
38928
39057
  const hasMicrophones = devicesButtonProps.microphones.length > 0;
39058
+ const cameraLoadingString = (_a = locale.strings.call.configurationPageCameraIsLoadingLabel) !== null && _a !== void 0 ? _a : locale.strings.call.cameraTurnedOff;
39059
+ const previewCameraString = props.cameraLoading ? cameraLoadingString : locale.strings.call.cameraTurnedOff;
38929
39060
  const theme = useTheme();
38930
39061
  const onRenderPlaceholder = React.useCallback(() => {
38931
39062
  return (React.createElement(react.Stack, { className: react.mergeStyles({
@@ -38939,8 +39070,8 @@ const LocalPreview = (props) => {
38939
39070
  React.createElement(react.Stack.Item, { align: "center" },
38940
39071
  React.createElement(CallCompositeIcon, { iconName: "LocalPreviewPlaceholder", className: react.mergeStyles(cameraOffLabelStyle, { color: theme.palette.neutralTertiary }) })),
38941
39072
  React.createElement(react.Stack.Item, { align: "center" },
38942
- React.createElement(react.Text, { className: react.mergeStyles(cameraOffLabelStyle, { color: theme.palette.neutralSecondary }) }, locale.strings.call.cameraTurnedOff))));
38943
- }, [theme, locale.strings.call.cameraTurnedOff]);
39073
+ React.createElement(react.Text, { className: react.mergeStyles(cameraOffLabelStyle, { color: theme.palette.neutralSecondary }) }, previewCameraString))));
39074
+ }, [theme, previewCameraString]);
38944
39075
  const devicesButtonStyles = props.mobileView
38945
39076
  ? {
38946
39077
  menuStyles: {
@@ -38954,7 +39085,7 @@ const LocalPreview = (props) => {
38954
39085
  React.createElement(MicrophoneButton, { "data-ui-id": "call-composite-local-device-settings-microphone-button", checked: isLocalMicrophoneEnabled, onToggleMicrophone: onToggleMic, disabled: !microphonePermissionGranted || !hasMicrophones, showLabel: true,
38955
39086
  // disable tooltip as it obscures list of devices on mobile
38956
39087
  strings: props.mobileView ? { tooltipOnContent: '', tooltipOffContent: '', tooltipDisabledContent: '' } : {}, styles: localPreviewButtonStyle(props.mobileView) }),
38957
- React.createElement(CameraButton, Object.assign({ "data-ui-id": "call-composite-local-device-settings-camera-button" }, cameraButtonProps, { showLabel: true, disabled: !cameraPermissionGranted || !hasCameras,
39088
+ React.createElement(CameraButton, Object.assign({ "data-ui-id": "call-composite-local-device-settings-camera-button" }, cameraButtonProps, { onToggleCamera: props.onToggleCamera, showLabel: true, disabled: !cameraPermissionGranted || !hasCameras || props.cameraLoading,
38958
39089
  // disable tooltip as it obscures list of devices on mobile
38959
39090
  strings: props.mobileView
38960
39091
  ? {
@@ -39327,6 +39458,28 @@ const ConfigurationPage = (props) => {
39327
39458
  let disableStartCallButton = !microphonePermissionGranted || (microphones === null || microphones === void 0 ? void 0 : microphones.length) === 0;
39328
39459
  const role = useSelector$1(getRole);
39329
39460
  const isCameraOn = useSelector$1(localVideoSelector).isAvailable;
39461
+ const [cameraLoading, setCameraLoading] = React.useState(false);
39462
+ const switchCamera = React.useCallback((device, options) => __awaiter$c(void 0, void 0, void 0, function* () {
39463
+ // Only set camera to be loading if we are switching source while the camera is on
39464
+ setCameraLoading(isCameraOn);
39465
+ try {
39466
+ yield localDeviceSettingsHandlers.onSelectCamera(device, options);
39467
+ }
39468
+ finally {
39469
+ setCameraLoading(false);
39470
+ }
39471
+ }), [localDeviceSettingsHandlers, isCameraOn]);
39472
+ const { onToggleCamera } = usePropsFor$1(CameraButton);
39473
+ const toggleCamera = React.useCallback((options) => __awaiter$c(void 0, void 0, void 0, function* () {
39474
+ // Only set camera to loading if we are turning on the camera (i.e. the camera was off)
39475
+ setCameraLoading(!isCameraOn);
39476
+ try {
39477
+ yield onToggleCamera(options);
39478
+ }
39479
+ finally {
39480
+ setCameraLoading(false);
39481
+ }
39482
+ }), [isCameraOn, onToggleCamera]);
39330
39483
  let filteredLatestErrors = props.latestErrors;
39331
39484
  // TODO: move this logic to the error bar selector once role is plumbed from the headless SDK
39332
39485
  if (role !== 'Consumer') {
@@ -39440,10 +39593,10 @@ const ConfigurationPage = (props) => {
39440
39593
  title,
39441
39594
  callDescription),
39442
39595
  React.createElement(react.Stack, { horizontal: !mobileWithPreview, horizontalAlign: mobileWithPreview ? 'stretch' : 'center', verticalFill: mobileWithPreview, tokens: deviceConfigurationStackTokens },
39443
- localPreviewTrampoline(mobileWithPreview, !!(role === 'Consumer')),
39596
+ role !== 'Consumer' && (React.createElement(LocalPreview, { mobileView: mobileWithPreview, showDevicesButton: mobileView, onToggleCamera: toggleCamera, cameraLoading: cameraLoading && !isCameraOn })),
39444
39597
  React.createElement(react.Stack, { styles: mobileView ? undefined : configurationSectionStyle },
39445
39598
  !mobileWithPreview && (React.createElement(react.Stack, { className: mobileView ? undefined : selectionContainerStyle(theme, _isSafari(environmentInfo)) },
39446
- React.createElement(LocalDeviceSettings, Object.assign({}, options, localDeviceSettingsHandlers, { cameraPermissionGranted: cameraPermissionGrantedTrampoline(cameraPermissionGranted,
39599
+ React.createElement(LocalDeviceSettings, Object.assign({}, options, localDeviceSettingsHandlers, { onSelectCamera: switchCamera, cameraPermissionGranted: cameraPermissionGrantedTrampoline(cameraPermissionGranted,
39447
39600
  /* @conditional-compile-remove(call-readiness) */ videoState), microphonePermissionGranted: micPermissionGrantedTrampoline(microphonePermissionGranted,
39448
39601
  /* @conditional-compile-remove(call-readiness) */ audioState),
39449
39602
  /* @conditional-compile-remove(call-readiness) */
@@ -39455,12 +39608,6 @@ const ConfigurationPage = (props) => {
39455
39608
  React.createElement(react.Panel, { isOpen: isVideoEffectsPaneOpen, hasCloseButton: false, isBlocking: false, isHiddenOnDismiss: false, styles: panelStyles, focusTrapZoneProps: panelFocusProps, layerProps: panelLayerProps, type: react.PanelType.custom, customWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` },
39456
39609
  React.createElement(SidePane, { ariaLabel: isVideoEffectsPaneOpen ? locale.strings.call.videoEffectsPaneAriaLabel : undefined, mobileView: props.mobileView, updateSidePaneRenderer: props.updateSidePaneRenderer, maxWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem`, minWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` })))));
39457
39610
  };
39458
- const localPreviewTrampoline = (mobileView, doNotShow) => {
39459
- if (doNotShow) {
39460
- return undefined;
39461
- }
39462
- return React.createElement(LocalPreview, { mobileView: mobileView, showDevicesButton: mobileView });
39463
- };
39464
39611
  const cameraPermissionGrantedTrampoline = (cameraPermissionGranted, videoState) => {
39465
39612
  /* @conditional-compile-remove(call-readiness) */
39466
39613
  return videoState && videoState !== 'unsupported' ? videoState === 'granted' : cameraPermissionGranted;
@@ -45229,4 +45376,4 @@ exports.useTeamsCall = useTeamsCall;
45229
45376
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
45230
45377
  exports.useTeamsCallAgent = useTeamsCallAgent;
45231
45378
  exports.useTheme = useTheme;
45232
- //# sourceMappingURL=index-DVP3RFKN.js.map
45379
+ //# sourceMappingURL=index-Ckf4Ubbj.js.map