@azure/communication-react 1.22.0-alpha-202411190017 → 1.22.0-alpha-202411220017

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 (76) hide show
  1. package/dist/communication-react.d.ts +25 -0
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BUGbN3hN.js → ChatMessageComponentAsRichTextEditBox-BJHzV21c.js} +19 -14
  3. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-BJHzV21c.js.map +1 -0
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BDeLfzgC.js → RichTextSendBoxWrapper-BSRyoXv_.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-BDeLfzgC.js.map → RichTextSendBoxWrapper-BSRyoXv_.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-DpDZlDJC.js → index-DCYuyrVc.js} +582 -426
  7. package/dist/dist-cjs/communication-react/index-DCYuyrVc.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/handlers/createCommonHandlers.js +1 -1
  16. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  17. package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js +6 -5
  18. package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js.map +1 -1
  19. package/dist/dist-esm/react-components/src/components/CameraButton.js +12 -5
  20. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  21. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js +1 -1
  22. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
  23. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +17 -12
  24. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  25. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js +1 -1
  26. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
  27. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js +37 -26
  28. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js.map +1 -1
  29. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js +4 -3
  30. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +1 -1
  31. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js +2 -1
  32. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js.map +1 -1
  33. package/dist/dist-esm/react-components/src/components/Notification.d.ts +10 -0
  34. package/dist/dist-esm/react-components/src/components/Notification.js +2 -1
  35. package/dist/dist-esm/react-components/src/components/Notification.js.map +1 -1
  36. package/dist/dist-esm/react-components/src/components/NotificationStack.d.ts +5 -0
  37. package/dist/dist-esm/react-components/src/components/NotificationStack.js +1 -1
  38. package/dist/dist-esm/react-components/src/components/NotificationStack.js.map +1 -1
  39. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts +8 -0
  40. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +14 -10
  41. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  42. package/dist/dist-esm/react-components/src/components/ParticipantList.js +17 -2
  43. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  44. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +2 -2
  45. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  46. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +3 -3
  47. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  48. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +3 -0
  49. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
  50. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  51. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +8 -1
  52. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +1 -1
  53. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js +2 -3
  54. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
  55. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +12 -3
  56. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  57. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.d.ts +3 -0
  58. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +6 -3
  59. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  60. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +25 -10
  61. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  62. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.d.ts +2 -2
  63. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js +5 -4
  64. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js.map +1 -1
  65. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +1 -1
  66. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  67. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +1 -1
  68. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  69. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +1 -1
  70. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  71. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +2 -2
  72. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  73. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -0
  74. package/package.json +1 -1
  75. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-BUGbN3hN.js.map +0 -1
  76. package/dist/dist-cjs/communication-react/index-DpDZlDJC.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-202411190017';
191
+ var telemetryVersion = '1.22.0-alpha-202411220017';
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);
@@ -1258,11 +1261,11 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1258
1261
  return yield audioEffectsFeature.startEffects(audioEffects);
1259
1262
  }
1260
1263
  else {
1261
- throw new Error('Deep Noise Suppression is not supported on this platform.');
1264
+ console.warn('Deep Noise Suppression is not supported on this platform.');
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-BUGbN3hN.js'); }));
15922
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BJHzV21c.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-BUGbN3hN.js'); });
15930
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BJHzV21c.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);
@@ -20827,6 +20926,7 @@ const useComponentRef = (props, focusTrapZone) => {
20827
20926
  }), [focusTrapZone]);
20828
20927
  };
20829
20928
  const ModalBase = React__namespace.forwardRef((propsWithoutDefaults, ref) => {
20929
+ var _a;
20830
20930
  const props = react.getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);
20831
20931
  const { allowTouchBodyScroll, className, children, containerClassName, scrollableContentClassName, elementToFocusOnDismiss, firstFocusableSelector, forceFocusInsideTrap, ignoreExternalFocusing, isBlocking, isAlert, isClickableOutsideFocusTrap, isDarkOverlay, onDismiss, layerProps, overlay, isOpen, titleAriaId, styles, subtitleAriaId, theme, topOffsetFixed, responsiveMode, onLayerDidMount, isModeless, dragOptions, onDismissed, minDragPosition, maxDragPosition, dataUiId } = props;
20832
20932
  const rootRef = React__namespace.useRef(null);
@@ -21063,7 +21163,7 @@ const ModalBase = React__namespace.forwardRef((propsWithoutDefaults, ref) => {
21063
21163
  internalState.events.dispose();
21064
21164
  });
21065
21165
  useComponentRef(props, focusTrapZone);
21066
- const modalContent = (React__namespace.createElement(react.FocusTrapZone, { disabled: true, id: focusTrapZoneId, ref: focusTrapZoneElm, componentRef: focusTrapZone, className: classNames.main, elementToFocusOnDismiss: elementToFocusOnDismiss, isClickableOutsideFocusTrap: isModeless || isClickableOutsideFocusTrap || !isBlocking, ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: forceFocusInsideTrap && !isModeless, firstFocusableSelector: firstFocusableSelector, focusPreviouslyFocusedInnerElement: true, onBlur: internalState.isInKeyboardMoveMode ? handleExitKeyboardMoveMode : undefined, "data-ui-id": dataUiId },
21166
+ const modalContent = (React__namespace.createElement(react.FocusTrapZone, Object.assign({ disabled: true, id: focusTrapZoneId, ref: focusTrapZoneElm, componentRef: focusTrapZone, className: classNames.main, elementToFocusOnDismiss: elementToFocusOnDismiss, isClickableOutsideFocusTrap: isModeless || isClickableOutsideFocusTrap || !isBlocking, ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: forceFocusInsideTrap && !isModeless, firstFocusableSelector: firstFocusableSelector, focusPreviouslyFocusedInnerElement: true, onBlur: internalState.isInKeyboardMoveMode ? handleExitKeyboardMoveMode : undefined, "data-ui-id": dataUiId }, ((_a = props.focusTrapZoneProps) !== null && _a !== void 0 ? _a : {})),
21067
21167
  dragOptions && internalState.isInKeyboardMoveMode && (React__namespace.createElement("div", { className: classNames.keyboardMoveIconContainer }, dragOptions.keyboardMoveIconProps ? (React__namespace.createElement(react.Icon, Object.assign({}, dragOptions.keyboardMoveIconProps))) : (React__namespace.createElement(react.Icon, { iconName: "move", className: classNames.keyboardMoveIcon })))),
21068
21168
  React__namespace.createElement("div", { ref: allowScrollOnModal, className: classNames.scrollableContent, "data-is-scrollable": true },
21069
21169
  dragOptions && isModalMenuOpen && (React__namespace.createElement(dragOptions.menu, { items: [
@@ -22525,7 +22625,7 @@ const DevicesButton = (props) => {
22525
22625
 
22526
22626
  // Copyright (c) Microsoft Corporation.
22527
22627
  // Licensed under the MIT License.
22528
- var __awaiter$G = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
22628
+ var __awaiter$H = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
22529
22629
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
22530
22630
  return new (P || (P = Promise))(function (resolve, reject) {
22531
22631
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -22546,7 +22646,7 @@ const defaultLocalVideoViewOptions = {
22546
22646
  * @public
22547
22647
  */
22548
22648
  const CameraButton = (props) => {
22549
- var _a, _b, _c, _d, _e, _f, _g;
22649
+ var _a, _b, _c, _d, _e, _f, _g, _h;
22550
22650
  const { localVideoViewOptions, onToggleCamera, onSelectCamera } = props;
22551
22651
  const [waitForCamera, setWaitForCamera] = React.useState(false);
22552
22652
  const localeStrings = useLocale$1().strings.cameraButton;
@@ -22559,7 +22659,14 @@ const CameraButton = (props) => {
22559
22659
  strings.tooltipDisabledContent = strings.tooltipVideoLoadingContent;
22560
22660
  }
22561
22661
  const cameraOn = props.checked;
22562
- 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;
22563
22670
  const toggleAnnouncerString = React.useCallback((isCameraOn) => {
22564
22671
  setAnnouncerString(!isCameraOn ? strings.cameraActionTurnedOffAnnouncement : strings.cameraActionTurnedOnAnnouncement);
22565
22672
  }, [strings.cameraActionTurnedOffAnnouncement, strings.cameraActionTurnedOnAnnouncement]);
@@ -22568,7 +22675,7 @@ const CameraButton = (props) => {
22568
22675
  setAnnouncerString(strings.tooltipVideoLoadingContent);
22569
22676
  }
22570
22677
  }, [setAnnouncerString, cameraOn, strings.tooltipVideoLoadingContent]);
22571
- 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* () {
22572
22679
  // Throttle click on camera, need to await onToggleCamera then allow another click
22573
22680
  if (onToggleCamera) {
22574
22681
  setWaitForCamera(true);
@@ -22586,7 +22693,7 @@ const CameraButton = (props) => {
22586
22693
  onVideoIsLoadingAnnouncementCallback();
22587
22694
  onToggleClick();
22588
22695
  }, [onVideoIsLoadingAnnouncementCallback, onToggleClick]);
22589
- 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* () {
22590
22697
  // Throttle changing camera to prevent too many callbacks
22591
22698
  if (onSelectCamera) {
22592
22699
  setWaitForCamera(true);
@@ -22635,9 +22742,9 @@ const CameraButton = (props) => {
22635
22742
  const splitButtonMenuProps = React.useMemo(() => (Object.assign(Object.assign({}, props.splitButtonMenuProps), { className: 'camera-split-button' })), [props.splitButtonMenuProps]);
22636
22743
  return (React.createElement(React.Fragment, null,
22637
22744
  React.createElement(Announcer$1, { announcementString: announcerString, ariaLive: 'polite' }),
22638
- 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
22639
- ? generateDefaultDeviceMenuProps(Object.assign(Object.assign({}, props), { onSelectCamera: onChangeCameraClick, styles: (_e = props.styles) === null || _e === void 0 ? void 0 : _e.menuStyles }), strings, splitButtonPrimaryAction)
22640
- : 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 }))));
22641
22748
  };
22642
22749
 
22643
22750
  // Copyright (c) Microsoft Corporation.
@@ -22801,7 +22908,7 @@ const menupButtonPadding = {
22801
22908
 
22802
22909
  // Copyright (c) Microsoft Corporation.
22803
22910
  // Licensed under the MIT License.
22804
- var __awaiter$F = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
22911
+ var __awaiter$G = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
22805
22912
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
22806
22913
  return new (P || (P = Promise))(function (resolve, reject) {
22807
22914
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -22842,7 +22949,7 @@ const MicrophoneButton = (props) => {
22842
22949
  const toggleAnnouncerString = React.useCallback((isMicOn) => {
22843
22950
  setAnnouncerString(!isMicOn ? strings.microphoneActionTurnedOffAnnouncement : strings.microphoneActionTurnedOnAnnouncement);
22844
22951
  }, [strings.microphoneActionTurnedOffAnnouncement, strings.microphoneActionTurnedOnAnnouncement]);
22845
- 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* () {
22846
22953
  if (onToggleMicrophone) {
22847
22954
  try {
22848
22955
  yield onToggleMicrophone();
@@ -22868,7 +22975,7 @@ const MicrophoneButton = (props) => {
22868
22975
  splitButtonMenuItems.push({
22869
22976
  key: 'microphoneDNSToggle',
22870
22977
  onRender: () => {
22871
- 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* () {
22872
22979
  var _a;
22873
22980
  yield ((_a = props.onClickNoiseSuppression) === null || _a === void 0 ? void 0 : _a.call(props));
22874
22981
  setAnnouncerString(props.isDeepNoiseSuppressionOn
@@ -23019,6 +23126,7 @@ const SitePermissionsContainer = (props) => {
23019
23126
  var _a, _b;
23020
23127
  const { appName, onTroubleshootingClick, onPrimaryButtonClick, strings } = props;
23021
23128
  const theme = react.useTheme();
23129
+ const showPrimaryButton = onPrimaryButtonClick && isValidString(strings === null || strings === void 0 ? void 0 : strings.primaryButtonText);
23022
23130
  return (React.createElement(react.Stack, { style: { padding: '2rem', maxWidth: '25.375rem', alignSelf: 'center' }, "aria-label": strings === null || strings === void 0 ? void 0 : strings.ariaLabel },
23023
23131
  React.createElement(react.Stack, { styles: iconBannerContainerStyles, horizontal: true, horizontalAlign: 'center', verticalFill: true, tokens: tokens },
23024
23132
  props.cameraIconName && (React.createElement(react.Stack, null,
@@ -23028,10 +23136,10 @@ const SitePermissionsContainer = (props) => {
23028
23136
  props.microphoneIconName && (React.createElement(react.Stack, null,
23029
23137
  React.createElement(react.Icon, { styles: iconPrimaryStyles, iconName: props.microphoneIconName })))),
23030
23138
  React.createElement(react.Stack, { styles: textContainerStyles },
23031
- strings && isValidString(strings === null || strings === void 0 ? void 0 : strings.primaryText) && (React.createElement(react.Text, { styles: primaryTextStyles }, appName ? _formatString(strings.primaryText, { appName: appName }) : strings.primaryText)),
23139
+ strings && isValidString(strings === null || strings === void 0 ? void 0 : strings.primaryText) && (React.createElement(react.Text, { styles: primaryTextStyles, role: "alert", "aria-live": "assertive" }, appName ? _formatString(strings.primaryText, { appName: appName }) : strings.primaryText)),
23032
23140
  strings && isValidString(strings === null || strings === void 0 ? void 0 : strings.secondaryText) && (React.createElement(react.Text, { styles: secondaryTextStyles$1 }, strings === null || strings === void 0 ? void 0 : strings.secondaryText)),
23033
- onPrimaryButtonClick && isValidString(strings === null || strings === void 0 ? void 0 : strings.primaryButtonText) && (React.createElement(react.PrimaryButton, { styles: react.mergeStyleSets(primaryButtonStyles, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.primaryButton), text: strings === null || strings === void 0 ? void 0 : strings.primaryButtonText, onClick: onPrimaryButtonClick })),
23034
- onTroubleshootingClick && isValidString(strings === null || strings === void 0 ? void 0 : strings.linkText) && (React.createElement(react.Link, { styles: react.mergeStyleSets(linkTextStyles$1, (_b = props.styles) === null || _b === void 0 ? void 0 : _b.troubleshootingLink), onClick: onTroubleshootingClick }, strings === null || strings === void 0 ? void 0 : strings.linkText)))));
23141
+ showPrimaryButton && (React.createElement(react.PrimaryButton, { styles: react.mergeStyleSets(primaryButtonStyles, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.primaryButton), text: strings === null || strings === void 0 ? void 0 : strings.primaryButtonText, onClick: onPrimaryButtonClick, autoFocus: true })),
23142
+ onTroubleshootingClick && isValidString(strings === null || strings === void 0 ? void 0 : strings.linkText) && (React.createElement(react.Link, { styles: react.mergeStyleSets(linkTextStyles$1, (_b = props.styles) === null || _b === void 0 ? void 0 : _b.troubleshootingLink), onClick: onTroubleshootingClick, autoFocus: !showPrimaryButton }, strings === null || strings === void 0 ? void 0 : strings.linkText)))));
23035
23143
  };
23036
23144
 
23037
23145
  // Copyright (c) Microsoft Corporation.
@@ -23309,7 +23417,7 @@ const ScreenShareButton = (props) => {
23309
23417
  const styles = screenshareButtonStyles(theme);
23310
23418
  const onRenderScreenShareOnIcon = () => (React.createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonScreenShareStop" }));
23311
23419
  const onRenderScreenShareOffIcon = () => (React.createElement(_HighContrastAwareIcon, { disabled: props.disabled, iconName: "ControlButtonScreenShareStart" }));
23312
- 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 })));
23313
23421
  };
23314
23422
  const screenshareButtonStyles = (theme) => ({
23315
23423
  rootChecked: {
@@ -23730,7 +23838,7 @@ const dtmfFrequencies = {
23730
23838
 
23731
23839
  // Copyright (c) Microsoft Corporation.
23732
23840
  // Licensed under the MIT License.
23733
- var __awaiter$E = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
23841
+ var __awaiter$F = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
23734
23842
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23735
23843
  return new (P || (P = Promise))(function (resolve, reject) {
23736
23844
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -23774,10 +23882,10 @@ const DialpadButton = (props) => {
23774
23882
  const [buttonPressed, setButtonPressed] = React.useState(false);
23775
23883
  const dtmfToneSound = React.useRef(new Tone(dtmfToneAudioContext, dtmfFrequencies[digit].f1, dtmfFrequencies[digit].f2));
23776
23884
  const useLongPressProps = React.useMemo(() => ({
23777
- onClick: () => __awaiter$E(void 0, void 0, void 0, function* () {
23885
+ onClick: () => __awaiter$F(void 0, void 0, void 0, function* () {
23778
23886
  onClick(digit, index);
23779
23887
  }),
23780
- onLongPress: () => __awaiter$E(void 0, void 0, void 0, function* () {
23888
+ onLongPress: () => __awaiter$F(void 0, void 0, void 0, function* () {
23781
23889
  onLongPress(digit, index);
23782
23890
  }),
23783
23891
  touchEventsOnly: longPressTrigger === 'touch'
@@ -24462,7 +24570,7 @@ const _TroubleshootingGuideErrorBar = (props) => {
24462
24570
  // Without this behaviour, this `useEffect` block would cause a render loop.
24463
24571
  React.useEffect(() => setDismissedErrors(dropDismissalsForInactiveErrors(props.activeErrorMessages, dismissedErrors)), [props.activeErrorMessages, dismissedErrors]);
24464
24572
  const toShow = errorsToShow(props.activeErrorMessages, dismissedErrors);
24465
- 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) => {
24466
24574
  const devicePermissionErrorBar = (React.createElement("div", null,
24467
24575
  strings[error.type],
24468
24576
  ' ',
@@ -24475,9 +24583,9 @@ const _TroubleshootingGuideErrorBar = (props) => {
24475
24583
  ' ',
24476
24584
  onNetworkingTroubleshootingClick && (React.createElement(react.Link, { onClick: onNetworkingTroubleshootingClick, underline: true },
24477
24585
  React.createElement("span", { className: messageBarLinkStyles(theme) }, troubleshootingGuideStrings.networkTroubleshootingLinkText)))));
24478
- 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: () => {
24479
24587
  setDismissedErrors(dismissError(dismissedErrors, error));
24480
- }, 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)));
24481
24589
  })));
24482
24590
  };
24483
24591
  const showErrorBar = (errorType, devicePermissionErrorBar, networkErrorBar) => {
@@ -24497,36 +24605,47 @@ const showErrorBar = (errorType, devicePermissionErrorBar, networkErrorBar) => {
24497
24605
  * @internal
24498
24606
  */
24499
24607
  const _DevicePermissionDropdown = (props) => {
24500
- const { icon, askDevicePermission, onClick, constrain, strings, options, styles } = props;
24608
+ const { icon, askDevicePermission, onClick, constrain, strings, options } = props;
24501
24609
  const onRenderPlaceholder = () => {
24502
- return (React.createElement(react.Stack, { horizontal: true, verticalAlign: "center" },
24610
+ return (React.createElement(react.Stack, { horizontal: true, verticalAlign: "center", horizontalAlign: "space-between" },
24503
24611
  icon,
24504
- 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))));
24505
24627
  };
24506
- const onRenderCaretDown = () => {
24507
- 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();
24508
24641
  };
24509
- 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: () => {
24510
- if (askDevicePermission) {
24511
- 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
+ }
24512
24647
  }
24513
- onClick === null || onClick === void 0 ? void 0 : onClick();
24514
- }, options: options !== null && options !== void 0 ? options : [], styles: styles }));
24515
- };
24516
- const actionButtonStyles = {
24517
- root: {
24518
- border: 'none',
24519
- height: '2rem',
24520
- padding: '0 0',
24521
- paddingTop: '0.1rem',
24522
- position: 'absolute',
24523
- right: '0',
24524
- lineHeight: '2rem',
24525
- minWidth: '3rem'
24526
- },
24527
- label: {
24528
- fontWeight: 400
24529
- }
24648
+ : undefined, options: options !== null && options !== void 0 ? options : [], styles: styles }));
24530
24649
  };
24531
24650
 
24532
24651
  // Copyright (c) Microsoft Corporation.
@@ -25019,7 +25138,7 @@ const _spokenLanguageToCaptionLanguage = {
25019
25138
 
25020
25139
  // Copyright (c) Microsoft Corporation.
25021
25140
  // Licensed under the MIT License.
25022
- var __awaiter$D = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
25141
+ var __awaiter$E = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
25023
25142
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
25024
25143
  return new (P || (P = Promise))(function (resolve, reject) {
25025
25144
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -25058,7 +25177,7 @@ const _CaptionsSettingsModal = (props) => {
25058
25177
  onDismissCaptionsSettings();
25059
25178
  }
25060
25179
  }, [onDismissCaptionsSettings]);
25061
- 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* () {
25062
25181
  const spokenLanguageCode = selectedSpokenLanguage.key;
25063
25182
  const captionLanguageCode = selectedCaptionLanguage.key;
25064
25183
  if (isCaptionsFeatureActive) {
@@ -25155,7 +25274,7 @@ const _CaptionsSettingsModal = (props) => {
25155
25274
  React.createElement("span", null, strings === null || strings === void 0 ? void 0 : strings.captionsSettingsCancelButtonLabel))))));
25156
25275
  };
25157
25276
 
25158
- var __awaiter$C = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
25277
+ var __awaiter$D = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
25159
25278
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
25160
25279
  return new (P || (P = Promise))(function (resolve, reject) {
25161
25280
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -25179,7 +25298,7 @@ const RTTModal = (props) => {
25179
25298
  onDismissModal();
25180
25299
  }
25181
25300
  }, [onDismissModal]);
25182
- 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* () {
25183
25302
  if (onStartRTT) {
25184
25303
  yield onStartRTT();
25185
25304
  }
@@ -25465,6 +25584,7 @@ const Notification = (props) => {
25465
25584
  const strings = props.notificationStrings;
25466
25585
  const theme = react.useTheme();
25467
25586
  const [show, setShow] = React.useState(true);
25587
+ const { ariaLive = 'assertive', role = 'alert' } = props;
25468
25588
  if (props.autoDismiss) {
25469
25589
  setTimeout(() => {
25470
25590
  // After 5 seconds set the show value to false
@@ -25475,7 +25595,7 @@ const Notification = (props) => {
25475
25595
  return React.createElement(React.Fragment, null);
25476
25596
  }
25477
25597
  }
25478
- return (React.createElement(react.Stack, { horizontalAlign: "center" },
25598
+ return (React.createElement(react.Stack, { horizontalAlign: "center", "aria-live": ariaLive, role: role },
25479
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) },
25480
25600
  React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between" },
25481
25601
  React.createElement(react.Stack, { horizontal: true },
@@ -25545,7 +25665,7 @@ const NotificationStack = (props) => {
25545
25665
  : () => onDismiss();
25546
25666
  }
25547
25667
  return (React.createElement("div", { key: index, style: { marginBottom: `${index === maxNotificationsToShow - 1 ? 0 : '0.25rem'}` } },
25548
- 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 })));
25549
25669
  }
25550
25670
  else {
25551
25671
  return React.createElement(React.Fragment, null);
@@ -26573,11 +26693,9 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
26573
26693
  // have timestamps for errors.
26574
26694
  const activeErrorMessages = [];
26575
26695
  const isSafari = () => {
26576
- /* @conditional-compile-remove(calling-environment-info) */
26577
26696
  return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.browser) === 'safari';
26578
26697
  };
26579
26698
  const isMacOS = () => {
26580
- /* @conditional-compile-remove(calling-environment-info) */
26581
26699
  return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.platform) === 'mac';
26582
26700
  };
26583
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 ||
@@ -26775,7 +26893,7 @@ const getImageAttachmentsFromHTMLContent = (content) => {
26775
26893
 
26776
26894
  // Copyright (c) Microsoft Corporation.
26777
26895
  // Licensed under the MIT License.
26778
- var __awaiter$B = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
26896
+ var __awaiter$C = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
26779
26897
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
26780
26898
  return new (P || (P = Promise))(function (resolve, reject) {
26781
26899
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -26801,7 +26919,7 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
26801
26919
  // due to a bug in babel, we can't use arrow function here
26802
26920
  // affecting conditional-compile-remove(attachment-upload)
26803
26921
  onSendMessage: function (content, options) {
26804
- return __awaiter$B(this, void 0, void 0, function* () {
26922
+ return __awaiter$C(this, void 0, void 0, function* () {
26805
26923
  const sendMessageRequest = {
26806
26924
  content,
26807
26925
  senderDisplayName: chatClient.getState().displayName
@@ -26837,14 +26955,14 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
26837
26955
  },
26838
26956
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
26839
26957
  onUploadImage: function (image, imageFilename) {
26840
- return __awaiter$B(this, void 0, void 0, function* () {
26958
+ return __awaiter$C(this, void 0, void 0, function* () {
26841
26959
  const imageResult = yield chatThreadClient.uploadImage(image, imageFilename);
26842
26960
  return imageResult;
26843
26961
  });
26844
26962
  },
26845
26963
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
26846
26964
  onDeleteImage: function (imageId) {
26847
- return __awaiter$B(this, void 0, void 0, function* () {
26965
+ return __awaiter$C(this, void 0, void 0, function* () {
26848
26966
  try {
26849
26967
  yield chatThreadClient.deleteImage(imageId);
26850
26968
  }
@@ -26859,7 +26977,7 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
26859
26977
  onUpdateMessage: function (messageId, content,
26860
26978
  /* @conditional-compile-remove(file-sharing-acs) */
26861
26979
  options) {
26862
- return __awaiter$B(this, void 0, void 0, function* () {
26980
+ return __awaiter$C(this, void 0, void 0, function* () {
26863
26981
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
26864
26982
  const imageAttachments = getImageAttachmentsFromHTMLContent(content);
26865
26983
  const updateMessageOptions = {
@@ -26872,23 +26990,23 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
26872
26990
  yield chatThreadClient.updateMessage(messageId, updateMessageOptions);
26873
26991
  });
26874
26992
  },
26875
- onDeleteMessage: (messageId) => __awaiter$B(void 0, void 0, void 0, function* () {
26993
+ onDeleteMessage: (messageId) => __awaiter$C(void 0, void 0, void 0, function* () {
26876
26994
  yield chatThreadClient.deleteMessage(messageId);
26877
26995
  }),
26878
26996
  // This handler is designed for chatThread to consume
26879
- onMessageSeen: (chatMessageId) => __awaiter$B(void 0, void 0, void 0, function* () {
26997
+ onMessageSeen: (chatMessageId) => __awaiter$C(void 0, void 0, void 0, function* () {
26880
26998
  yield chatThreadClient.sendReadReceipt({ chatMessageId });
26881
26999
  }),
26882
- onTyping: () => __awaiter$B(void 0, void 0, void 0, function* () {
27000
+ onTyping: () => __awaiter$C(void 0, void 0, void 0, function* () {
26883
27001
  yield chatThreadClient.sendTypingNotification();
26884
27002
  }),
26885
- onRemoveParticipant: (userId) => __awaiter$B(void 0, void 0, void 0, function* () {
27003
+ onRemoveParticipant: (userId) => __awaiter$C(void 0, void 0, void 0, function* () {
26886
27004
  yield chatThreadClient.removeParticipant(fromFlatCommunicationIdentifier(userId));
26887
27005
  }),
26888
- updateThreadTopicName: (topicName) => __awaiter$B(void 0, void 0, void 0, function* () {
27006
+ updateThreadTopicName: (topicName) => __awaiter$C(void 0, void 0, void 0, function* () {
26889
27007
  yield chatThreadClient.updateTopic(topicName);
26890
27008
  }),
26891
- onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$B(void 0, void 0, void 0, function* () {
27009
+ onLoadPreviousChatMessages: (messagesToLoad) => __awaiter$C(void 0, void 0, void 0, function* () {
26892
27010
  var _a, _b, _c;
26893
27011
  if (messageIterator === undefined) {
26894
27012
  // Lazy definition so that errors in the method call are reported correctly.
@@ -27158,6 +27276,7 @@ const ACSKnownMessageType = {
27158
27276
  text: 'text',
27159
27277
  html: 'html',
27160
27278
  richtextHtml: 'richtext/html',
27279
+ topicUpdated: 'topicUpdated',
27161
27280
  participantAdded: 'participantAdded',
27162
27281
  participantRemoved: 'participantRemoved'
27163
27282
  };
@@ -27813,7 +27932,9 @@ class ChatError extends Error {
27813
27932
  * @private
27814
27933
  */
27815
27934
  const Constants = {
27816
- TYPING_INDICATOR_MAINTAIN_TIME: 8 * 1000};
27935
+ TYPING_INDICATOR_MAINTAIN_TIME: 8 * 1000,
27936
+ DUMMY_DATE: new Date(0)
27937
+ };
27817
27938
 
27818
27939
  // Copyright (c) Microsoft Corporation.
27819
27940
  // Licensed under the MIT License.
@@ -27822,7 +27943,7 @@ const Constants = {
27822
27943
  */
27823
27944
  const chatStatefulLogger = logger.createClientLogger('communication-react:chat-stateful');
27824
27945
 
27825
- var __awaiter$A = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
27946
+ var __awaiter$B = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
27826
27947
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27827
27948
  return new (P || (P = Promise))(function (resolve, reject) {
27828
27949
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -27864,7 +27985,7 @@ class ResourceDownloadQueue {
27864
27985
  this._messagesNeedingResourceRetrieval.push(copy);
27865
27986
  }
27866
27987
  startQueue(threadId, operation, options) {
27867
- return __awaiter$A(this, void 0, void 0, function* () {
27988
+ return __awaiter$B(this, void 0, void 0, function* () {
27868
27989
  if (this.isActive) {
27869
27990
  return;
27870
27991
  }
@@ -27901,7 +28022,7 @@ class ResourceDownloadQueue {
27901
28022
  }
27902
28023
  }
27903
28024
  downloadSingleUrl(message, resourceUrl, operation) {
27904
- return __awaiter$A(this, void 0, void 0, function* () {
28025
+ return __awaiter$B(this, void 0, void 0, function* () {
27905
28026
  const response = { sourceUrl: '' };
27906
28027
  try {
27907
28028
  const abortController = new AbortController();
@@ -27917,7 +28038,7 @@ class ResourceDownloadQueue {
27917
28038
  });
27918
28039
  }
27919
28040
  downloadAllPreviewUrls(message, operation) {
27920
- return __awaiter$A(this, void 0, void 0, function* () {
28041
+ return __awaiter$B(this, void 0, void 0, function* () {
27921
28042
  var _a;
27922
28043
  const attachments = (_a = message.content) === null || _a === void 0 ? void 0 : _a.attachments;
27923
28044
  if (message.type === 'html' && attachments) {
@@ -27944,7 +28065,7 @@ class ResourceDownloadQueue {
27944
28065
  });
27945
28066
  }
27946
28067
  downloadResource(operation, url, abortController) {
27947
- return __awaiter$A(this, void 0, void 0, function* () {
28068
+ return __awaiter$B(this, void 0, void 0, function* () {
27948
28069
  this._requestsToCancel[url] = { src: url, abortController };
27949
28070
  const blobUrl = yield operation(url, { credential: this._credential, endpoint: this._endpoint }, { abortController });
27950
28071
  delete this._requestsToCancel[url];
@@ -27955,9 +28076,9 @@ class ResourceDownloadQueue {
27955
28076
  /**
27956
28077
  * @private
27957
28078
  */
27958
- 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* () {
27959
28080
  function fetchWithAuthentication(url, token, options) {
27960
- return __awaiter$A(this, void 0, void 0, function* () {
28081
+ return __awaiter$B(this, void 0, void 0, function* () {
27961
28082
  const headers = new Headers();
27962
28083
  headers.append('Authorization', `Bearer ${token}`);
27963
28084
  return yield fetchWithTimeout(url, {
@@ -27968,7 +28089,7 @@ const fetchImageSource = (src, authentication, options) => __awaiter$A(void 0, v
27968
28089
  });
27969
28090
  }
27970
28091
  function fetchWithTimeout(resource, options) {
27971
- return __awaiter$A(this, void 0, void 0, function* () {
28092
+ return __awaiter$B(this, void 0, void 0, function* () {
27972
28093
  // default timeout is 30 seconds
27973
28094
  const { timeout = 30000, abortController } = options;
27974
28095
  const id = setTimeout(() => {
@@ -27995,7 +28116,7 @@ const fetchImageSource = (src, authentication, options) => __awaiter$A(void 0, v
27995
28116
 
27996
28117
  // Copyright (c) Microsoft Corporation.
27997
28118
  // Licensed under the MIT License.
27998
- var __awaiter$z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28119
+ var __awaiter$A = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
27999
28120
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28000
28121
  return new (P || (P = Promise))(function (resolve, reject) {
28001
28122
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -28069,7 +28190,7 @@ let ChatContext$1 = class ChatContext {
28069
28190
  // Any item in queue should be removed.
28070
28191
  }
28071
28192
  downloadResourceToCache(threadId, messageId, resourceUrl) {
28072
- return __awaiter$z(this, void 0, void 0, function* () {
28193
+ return __awaiter$A(this, void 0, void 0, function* () {
28073
28194
  var _a;
28074
28195
  let message = (_a = this.getState().threads[threadId]) === null || _a === void 0 ? void 0 : _a.chatMessages[messageId];
28075
28196
  if (message && this._fullsizeImageQueue) {
@@ -28348,7 +28469,7 @@ let ChatContext$1 = class ChatContext {
28348
28469
  * @throws ChatError. Exceptions thrown from `f` are tagged with the failed `target.
28349
28470
  */
28350
28471
  withAsyncErrorTeedToState(f, target) {
28351
- return (...args) => __awaiter$z(this, void 0, void 0, function* () {
28472
+ return (...args) => __awaiter$A(this, void 0, void 0, function* () {
28352
28473
  try {
28353
28474
  return yield f(...args);
28354
28475
  }
@@ -28455,7 +28576,7 @@ const convertChatMessage = (message, status = 'delivered', clientMessageId) => {
28455
28576
 
28456
28577
  // Copyright (c) Microsoft Corporation.
28457
28578
  // Licensed under the MIT License.
28458
- var __awaiter$y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28579
+ var __awaiter$z = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28459
28580
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28460
28581
  return new (P || (P = Promise))(function (resolve, reject) {
28461
28582
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -28545,7 +28666,7 @@ class EventSubscriber {
28545
28666
  };
28546
28667
  // This is a temporary fix that no participant message is received for onChatMessageReceived event, which should be handled by JS SDK.
28547
28668
  // Without the temporary fix, there are missing 'participant joined' and 'participant left' system messages in the chat thread.
28548
- 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* () {
28549
28670
  var _a, e_1, _b, _c;
28550
28671
  try {
28551
28672
  for (var _d = true, _e = __asyncValues$1(this.chatClient
@@ -28639,7 +28760,7 @@ class EventSubscriber {
28639
28760
 
28640
28761
  // Copyright (c) Microsoft Corporation.
28641
28762
  // Licensed under the MIT License.
28642
- var __awaiter$x = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28763
+ var __awaiter$y = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28643
28764
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28644
28765
  return new (P || (P = Promise))(function (resolve, reject) {
28645
28766
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -28661,7 +28782,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
28661
28782
  const threadsIterator = iteratorCreator(...args);
28662
28783
  return {
28663
28784
  next() {
28664
- return __awaiter$x(this, void 0, void 0, function* () {
28785
+ return __awaiter$y(this, void 0, void 0, function* () {
28665
28786
  const result = yield threadsIterator.next();
28666
28787
  if (!result.done && result.value) {
28667
28788
  decorateFn(result.value, context);
@@ -28676,7 +28797,7 @@ const createDecoratedIterator = (iteratorCreator, context, decorateFn) => {
28676
28797
  const pages = threadsIterator.byPage(settings);
28677
28798
  return {
28678
28799
  next() {
28679
- return __awaiter$x(this, void 0, void 0, function* () {
28800
+ return __awaiter$y(this, void 0, void 0, function* () {
28680
28801
  const result = yield pages.next();
28681
28802
  const page = result.value;
28682
28803
  if (!result.done && result.value) {
@@ -28763,7 +28884,7 @@ const createDecoratedListParticipants = (chatThreadClient, context) => {
28763
28884
 
28764
28885
  // Copyright (c) Microsoft Corporation.
28765
28886
  // Licensed under the MIT License.
28766
- var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28887
+ var __awaiter$x = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28767
28888
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28768
28889
  return new (P || (P = Promise))(function (resolve, reject) {
28769
28890
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -28782,14 +28903,14 @@ class ProxyChatThreadClient {
28782
28903
  return createDecoratedListMessages(chatThreadClient, this._context);
28783
28904
  }
28784
28905
  case 'getMessage': {
28785
- 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* () {
28786
28907
  const message = yield chatThreadClient.getMessage(...args);
28787
28908
  this._context.setChatMessage(chatThreadClient.threadId, convertChatMessage(message));
28788
28909
  return message;
28789
28910
  }), 'ChatThreadClient.getMessage');
28790
28911
  }
28791
28912
  case 'sendMessage': {
28792
- 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* () {
28793
28914
  var _a;
28794
28915
  // Retry logic?
28795
28916
  const [request, options] = args;
@@ -28830,7 +28951,7 @@ class ProxyChatThreadClient {
28830
28951
  }), 'ChatThreadClient.sendMessage');
28831
28952
  }
28832
28953
  case 'addParticipants': {
28833
- 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* () {
28834
28955
  const result = yield chatThreadClient.addParticipants(...args);
28835
28956
  const [addRequest] = args;
28836
28957
  const participantsToAdd = addRequest.participants;
@@ -28839,7 +28960,7 @@ class ProxyChatThreadClient {
28839
28960
  }), 'ChatThreadClient.addParticipants');
28840
28961
  }
28841
28962
  case 'deleteMessage': {
28842
- 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* () {
28843
28964
  // DeleteMessage is able to either delete local one(for failed message) or synced message
28844
28965
  const [messageId] = args;
28845
28966
  if (this._context.deleteLocalMessage(chatThreadClient.threadId, messageId)) {
@@ -28857,12 +28978,12 @@ class ProxyChatThreadClient {
28857
28978
  return createDecoratedListReadReceipts(chatThreadClient, this._context);
28858
28979
  }
28859
28980
  case 'sendTypingNotification': {
28860
- 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* () {
28861
28982
  return yield chatThreadClient.sendTypingNotification(...args);
28862
28983
  }), 'ChatThreadClient.sendTypingNotification');
28863
28984
  }
28864
28985
  case 'removeParticipant': {
28865
- 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* () {
28866
28987
  const result = yield chatThreadClient.removeParticipant(...args);
28867
28988
  const [removeIdentifier] = args;
28868
28989
  this._context.deleteParticipant(chatThreadClient.threadId, communicationCommon.getIdentifierKind(removeIdentifier));
@@ -28870,7 +28991,7 @@ class ProxyChatThreadClient {
28870
28991
  }), 'ChatThreadClient.removeParticipant');
28871
28992
  }
28872
28993
  case 'updateMessage': {
28873
- 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* () {
28874
28995
  const result = yield chatThreadClient.updateMessage(...args);
28875
28996
  const [messageId, updateOption] = args;
28876
28997
  this._context.updateChatMessageContent(chatThreadClient.threadId, messageId, updateOption === null || updateOption === void 0 ? void 0 : updateOption.content);
@@ -28878,7 +28999,7 @@ class ProxyChatThreadClient {
28878
28999
  }), 'ChatThreadClient.updateMessage');
28879
29000
  }
28880
29001
  case 'updateTopic': {
28881
- 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* () {
28882
29003
  const result = yield chatThreadClient.updateTopic(...args);
28883
29004
  const [topic] = args;
28884
29005
  this._context.updateThreadTopic(chatThreadClient.threadId, topic);
@@ -28886,7 +29007,7 @@ class ProxyChatThreadClient {
28886
29007
  }), 'ChatThreadClient.updateTopic');
28887
29008
  }
28888
29009
  case 'getProperties': {
28889
- 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* () {
28890
29011
  const result = yield chatThreadClient.getProperties(...args);
28891
29012
  this._context.updateThread(chatThreadClient.threadId, result);
28892
29013
  return result;
@@ -28924,7 +29045,7 @@ const createDecoratedListThreads = (chatClient, context) => {
28924
29045
 
28925
29046
  // Copyright (c) Microsoft Corporation.
28926
29047
  // Licensed under the MIT License.
28927
- var __awaiter$v = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
29048
+ var __awaiter$w = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
28928
29049
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28929
29050
  return new (P || (P = Promise))(function (resolve, reject) {
28930
29051
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -28943,7 +29064,7 @@ const proxyChatClient = {
28943
29064
  switch (prop) {
28944
29065
  case 'createChatThread': {
28945
29066
  return context.withAsyncErrorTeedToState(function (...args) {
28946
- return __awaiter$v(this, void 0, void 0, function* () {
29067
+ return __awaiter$w(this, void 0, void 0, function* () {
28947
29068
  const result = yield chatClient.createChatThread(...args);
28948
29069
  const thread = result.chatThread;
28949
29070
  if (thread) {
@@ -28956,7 +29077,7 @@ const proxyChatClient = {
28956
29077
  }
28957
29078
  case 'deleteChatThread': {
28958
29079
  return context.withAsyncErrorTeedToState(function (...args) {
28959
- return __awaiter$v(this, void 0, void 0, function* () {
29080
+ return __awaiter$w(this, void 0, void 0, function* () {
28960
29081
  const result = yield chatClient.deleteChatThread(...args);
28961
29082
  context.deleteThread(args[0]);
28962
29083
  return result;
@@ -28976,7 +29097,7 @@ const proxyChatClient = {
28976
29097
  }
28977
29098
  case 'startRealtimeNotifications': {
28978
29099
  return context.withAsyncErrorTeedToState(function (...args) {
28979
- return __awaiter$v(this, void 0, void 0, function* () {
29100
+ return __awaiter$w(this, void 0, void 0, function* () {
28980
29101
  const ret = yield chatClient.startRealtimeNotifications(...args);
28981
29102
  if (!receiver.eventSubscriber) {
28982
29103
  receiver.eventSubscriber = new EventSubscriber(chatClient, context);
@@ -28987,7 +29108,7 @@ const proxyChatClient = {
28987
29108
  }
28988
29109
  case 'stopRealtimeNotifications': {
28989
29110
  return context.withAsyncErrorTeedToState(function (...args) {
28990
- return __awaiter$v(this, void 0, void 0, function* () {
29111
+ return __awaiter$w(this, void 0, void 0, function* () {
28991
29112
  const ret = yield chatClient.stopRealtimeNotifications(...args);
28992
29113
  if (receiver.eventSubscriber) {
28993
29114
  receiver.eventSubscriber.unsubscribe();
@@ -29100,7 +29221,7 @@ const _DEFAULT_INLINE_IMAGE_FILE_NAME = 'image.png';
29100
29221
 
29101
29222
  // Copyright (c) Microsoft Corporation.
29102
29223
  // Licensed under the MIT License.
29103
- var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
29224
+ var __awaiter$v = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
29104
29225
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
29105
29226
  return new (P || (P = Promise))(function (resolve, reject) {
29106
29227
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -29217,9 +29338,9 @@ class AzureCommunicationChatAdapter {
29217
29338
  this.chatClient.dispose();
29218
29339
  }
29219
29340
  fetchInitialData() {
29220
- return __awaiter$u(this, void 0, void 0, function* () {
29341
+ return __awaiter$v(this, void 0, void 0, function* () {
29221
29342
  // If get properties fails we dont want to try to get the participants after.
29222
- yield this.asyncTeeErrorToEventEmitter(() => __awaiter$u(this, void 0, void 0, function* () {
29343
+ yield this.asyncTeeErrorToEventEmitter(() => __awaiter$v(this, void 0, void 0, function* () {
29223
29344
  var _a, e_1, _b, _c;
29224
29345
  yield this.chatThreadClient.getProperties();
29225
29346
  try {
@@ -29255,66 +29376,66 @@ class AzureCommunicationChatAdapter {
29255
29376
  this.context.offStateChange(handler);
29256
29377
  }
29257
29378
  sendMessage(content, options) {
29258
- return __awaiter$u(this, void 0, void 0, function* () {
29259
- 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* () {
29260
29381
  return yield this.handlers.onSendMessage(content, options);
29261
29382
  }));
29262
29383
  });
29263
29384
  }
29264
29385
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
29265
29386
  uploadImage(image, imageFilename) {
29266
- return __awaiter$u(this, void 0, void 0, function* () {
29267
- 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* () {
29268
29389
  return yield this.handlers.onUploadImage(image, imageFilename);
29269
29390
  }));
29270
29391
  });
29271
29392
  }
29272
29393
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
29273
29394
  deleteImage(imageId) {
29274
- return __awaiter$u(this, void 0, void 0, function* () {
29275
- 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* () {
29276
29397
  return yield this.handlers.onDeleteImage(imageId);
29277
29398
  }));
29278
29399
  });
29279
29400
  }
29280
29401
  sendReadReceipt(chatMessageId) {
29281
- return __awaiter$u(this, void 0, void 0, function* () {
29282
- 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* () {
29283
29404
  yield this.handlers.onMessageSeen(chatMessageId);
29284
29405
  }));
29285
29406
  });
29286
29407
  }
29287
29408
  sendTypingIndicator() {
29288
- return __awaiter$u(this, void 0, void 0, function* () {
29289
- 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* () {
29290
29411
  yield this.handlers.onTyping();
29291
29412
  }));
29292
29413
  });
29293
29414
  }
29294
29415
  removeParticipant(userId) {
29295
- return __awaiter$u(this, void 0, void 0, function* () {
29296
- 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* () {
29297
29418
  yield this.handlers.onRemoveParticipant(userId);
29298
29419
  }));
29299
29420
  });
29300
29421
  }
29301
29422
  setTopic(topicName) {
29302
- return __awaiter$u(this, void 0, void 0, function* () {
29303
- 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* () {
29304
29425
  yield this.handlers.updateThreadTopicName(topicName);
29305
29426
  }));
29306
29427
  });
29307
29428
  }
29308
29429
  loadPreviousChatMessages(messagesToLoad) {
29309
- return __awaiter$u(this, void 0, void 0, function* () {
29310
- 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* () {
29311
29432
  return yield this.handlers.onLoadPreviousChatMessages(messagesToLoad);
29312
29433
  }));
29313
29434
  });
29314
29435
  }
29315
29436
  updateMessage(messageId, content, options) {
29316
- return __awaiter$u(this, void 0, void 0, function* () {
29317
- 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* () {
29318
29439
  var _a;
29319
29440
  /* @conditional-compile-remove(file-sharing-acs) */
29320
29441
  const messageOptions = {};
@@ -29345,14 +29466,14 @@ class AzureCommunicationChatAdapter {
29345
29466
  });
29346
29467
  }
29347
29468
  deleteMessage(messageId) {
29348
- return __awaiter$u(this, void 0, void 0, function* () {
29349
- 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* () {
29350
29471
  return yield this.handlers.onDeleteMessage(messageId);
29351
29472
  }));
29352
29473
  });
29353
29474
  }
29354
29475
  downloadResourceToCache(resourceDetails) {
29355
- return __awaiter$u(this, void 0, void 0, function* () {
29476
+ return __awaiter$v(this, void 0, void 0, function* () {
29356
29477
  this.chatClient.downloadResourceToCache(resourceDetails.threadId, resourceDetails.messageId, resourceDetails.resourceUrl);
29357
29478
  });
29358
29479
  }
@@ -29431,7 +29552,7 @@ class AzureCommunicationChatAdapter {
29431
29552
  this.emitter.off(event, listener);
29432
29553
  }
29433
29554
  asyncTeeErrorToEventEmitter(f) {
29434
- return __awaiter$u(this, void 0, void 0, function* () {
29555
+ return __awaiter$v(this, void 0, void 0, function* () {
29435
29556
  try {
29436
29557
  return yield f();
29437
29558
  }
@@ -29481,7 +29602,7 @@ const convertEventType = (type) => {
29481
29602
  *
29482
29603
  * @public
29483
29604
  */
29484
- 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 }) {
29485
29606
  return _createAzureCommunicationChatAdapterInner(endpointUrl, userId, displayName, credential, threadId);
29486
29607
  });
29487
29608
  /**
@@ -29489,7 +29610,7 @@ const createAzureCommunicationChatAdapter = (_a) => __awaiter$u(void 0, [_a], vo
29489
29610
  *
29490
29611
  * @internal
29491
29612
  */
29492
- 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') {
29493
29614
  if (!_isValidIdentifier(userId)) {
29494
29615
  throw new Error('Provided userId is invalid. Please provide valid identifier object.');
29495
29616
  }
@@ -29509,7 +29630,7 @@ const _createAzureCommunicationChatAdapterInner = (endpoint_1, userId_1, display
29509
29630
  * ThreadId is a promise to allow for lazy initialization of the adapter.
29510
29631
  * @internal
29511
29632
  */
29512
- 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') {
29513
29634
  if (!_isValidIdentifier(userId)) {
29514
29635
  throw new Error('Provided userId is invalid. Please provide valid identifier object.');
29515
29636
  }
@@ -29519,7 +29640,7 @@ const _createLazyAzureCommunicationChatAdapterInner = (endpoint_2, userId_2, dis
29519
29640
  endpoint,
29520
29641
  credential
29521
29642
  }, undefined, telemetryImplementationHint);
29522
- 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* () {
29523
29644
  if (UNSUPPORTED_CHAT_THREAD_TYPE.some((t) => threadId.includes(t))) {
29524
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}.`);
29525
29646
  }
@@ -29581,7 +29702,7 @@ beforeDispose) => {
29581
29702
  if (!credential || !displayName || !endpoint || !threadId || !userId) {
29582
29703
  return;
29583
29704
  }
29584
- (() => __awaiter$u(void 0, void 0, void 0, function* () {
29705
+ (() => __awaiter$v(void 0, void 0, void 0, function* () {
29585
29706
  if (adapterRef.current) {
29586
29707
  // Dispose the old adapter when a new one is created.
29587
29708
  //
@@ -29619,7 +29740,7 @@ beforeDispose) => {
29619
29740
  // Dispose any existing adapter when the component unmounts.
29620
29741
  React.useEffect(() => {
29621
29742
  return () => {
29622
- (() => __awaiter$u(void 0, void 0, void 0, function* () {
29743
+ (() => __awaiter$v(void 0, void 0, void 0, function* () {
29623
29744
  if (adapterRef.current) {
29624
29745
  if (beforeDisposeRef.current) {
29625
29746
  yield beforeDisposeRef.current(adapterRef.current);
@@ -29641,7 +29762,7 @@ beforeDispose) => {
29641
29762
  * @public
29642
29763
  */
29643
29764
  function createAzureCommunicationChatAdapterFromClient(chatClient, chatThreadClient) {
29644
- return __awaiter$u(this, void 0, void 0, function* () {
29765
+ return __awaiter$v(this, void 0, void 0, function* () {
29645
29766
  return new AzureCommunicationChatAdapter(chatClient, chatThreadClient);
29646
29767
  });
29647
29768
  }
@@ -29649,7 +29770,7 @@ const isChatError = (e) => {
29649
29770
  return 'target' in e && e['target'] !== undefined && 'innerError' in e && e['innerError'] !== undefined;
29650
29771
  };
29651
29772
 
29652
- 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};
29653
29774
 
29654
29775
  // Copyright (c) Microsoft Corporation.
29655
29776
  // Licensed under the MIT License.
@@ -30019,7 +30140,7 @@ const sendboxContainerStyles = {
30019
30140
 
30020
30141
  // Copyright (c) Microsoft Corporation.
30021
30142
  // Licensed under the MIT License.
30022
- var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
30143
+ var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
30023
30144
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30024
30145
  return new (P || (P = Promise))(function (resolve, reject) {
30025
30146
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -30040,7 +30161,7 @@ const AvatarPersona = (props) => {
30040
30161
  const { userId, dataProvider, text, imageUrl, imageInitials, initialsColor, initialsTextColor, showOverflowTooltip } = props;
30041
30162
  const [data, setData] = React.useState();
30042
30163
  React.useEffect(() => {
30043
- (() => __awaiter$t(void 0, void 0, void 0, function* () {
30164
+ (() => __awaiter$u(void 0, void 0, void 0, function* () {
30044
30165
  if (dataProvider && userId) {
30045
30166
  const newData = yield dataProvider(userId);
30046
30167
  if (avatarDeepDifferenceCheck(data, newData)) {
@@ -30541,7 +30662,7 @@ const ParticipantListWithHeading = (props) => {
30541
30662
  /* @conditional-compile-remove(total-participant-count) */ totalParticipantCount))),
30542
30663
  (onClickHeadingMoreButton ||
30543
30664
  ((headingMoreButtonMenuProps === null || headingMoreButtonMenuProps === void 0 ? void 0 : headingMoreButtonMenuProps.items) && headingMoreButtonMenuProps.items.length > 0)) && (React.createElement(react.Stack.Item, null,
30544
- 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 })))),
30545
30666
  React.createElement(react.FocusZone, { className: participantListContainerStyle, shouldFocusOnMount: true },
30546
30667
  React.createElement(ParticipantList$n, Object.assign({}, participantListProps, { pinnedParticipants: pinnedParticipants, styles: props.isMobile ? participantListMobileStyle : participantListStyle, onRenderAvatar: (userId, options) => (React.createElement(React.Fragment, null,
30547
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 })),
@@ -30594,7 +30715,7 @@ const AttachmentDownloadErrorBar = (props) => {
30594
30715
  /**
30595
30716
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
30596
30717
  */
30597
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BDeLfzgC.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
30718
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BSRyoXv_.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
30598
30719
  /**
30599
30720
  * @private
30600
30721
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -30602,7 +30723,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
30602
30723
  *
30603
30724
  /* @conditional-compile-remove(rich-text-editor-composite-support)
30604
30725
  */
30605
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BDeLfzgC.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
30726
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BSRyoXv_.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
30606
30727
  /**
30607
30728
  * @private
30608
30729
  */
@@ -30636,7 +30757,7 @@ const SendBoxPicker = (props) => {
30636
30757
 
30637
30758
  // Copyright (c) Microsoft Corporation.
30638
30759
  // Licensed under the MIT License.
30639
- var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
30760
+ var __awaiter$t = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
30640
30761
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30641
30762
  return new (P || (P = Promise))(function (resolve, reject) {
30642
30763
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -30648,7 +30769,7 @@ var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments,
30648
30769
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
30649
30770
  const MAX_INLINE_IMAGE_UPLOAD_SIZE_MB = 20;
30650
30771
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
30651
- 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* () {
30652
30773
  // default timeout is 30 seconds
30653
30774
  const { timeout = 30000, abortController } = options;
30654
30775
  const id = setTimeout(() => {
@@ -30662,7 +30783,7 @@ const fetchBlobData = (resource, options) => __awaiter$s(void 0, void 0, void 0,
30662
30783
  /**
30663
30784
  * @private
30664
30785
  */
30665
- 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* () {
30666
30787
  if (image.startsWith('blob') || image.startsWith('http')) {
30667
30788
  try {
30668
30789
  const res = yield fetchBlobData(image, { abortController: new AbortController() });
@@ -30705,7 +30826,7 @@ const getSendBoxInlineImages = (sendBoxInlineImageUploads) => {
30705
30826
  return (_a = sendBoxInlineImageUploads[SEND_BOX_UPLOADS_KEY_VALUE]) === null || _a === void 0 ? void 0 : _a.map((upload) => upload.metadata);
30706
30827
  };
30707
30828
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
30708
- 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* () {
30709
30830
  var _a, _b, _c;
30710
30831
  for (const task of uploadTasks) {
30711
30832
  const uploadTask = task;
@@ -30738,7 +30859,7 @@ const inlineImageUploadHandler = (uploadTasks, adapter, strings) => __awaiter$s(
30738
30859
  }
30739
30860
  });
30740
30861
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
30741
- 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* () {
30742
30863
  if (!imageAttributes.src) {
30743
30864
  console.error('Cannot upload image - Image src is not provided');
30744
30865
  return;
@@ -30793,7 +30914,7 @@ const generateUploadTask = (imageAttributes, fileName, messageId, inlineImageUpl
30793
30914
  /**
30794
30915
  * @internal
30795
30916
  */
30796
- 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* () {
30797
30918
  const uploadTask = yield generateUploadTask(imageAttributes, fileName, messageId, handleEditBoxInlineImageUploadAction);
30798
30919
  if (!uploadTask) {
30799
30920
  return;
@@ -30809,7 +30930,7 @@ const onInsertInlineImageForEditBox = (imageAttributes, fileName, messageId, ada
30809
30930
  /**
30810
30931
  * @internal
30811
30932
  */
30812
- 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* () {
30813
30934
  const uploadTask = yield generateUploadTask(imageAttributes, fileName, SEND_BOX_UPLOADS_KEY_VALUE, handleSendBoxInlineImageUploadAction);
30814
30935
  if (!uploadTask) {
30815
30936
  return;
@@ -30973,7 +31094,7 @@ const getCreatedBy = (state) => { var _a; return (_a = state.thread.properties)
30973
31094
 
30974
31095
  // Copyright (c) Microsoft Corporation.
30975
31096
  // Licensed under the MIT License.
30976
- var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
31097
+ var __awaiter$s = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
30977
31098
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30978
31099
  return new (P || (P = Promise))(function (resolve, reject) {
30979
31100
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -31013,7 +31134,7 @@ const ChatScreen = (props) => {
31013
31134
  const [sendBoxInlineImageUploads, handleSendBoxInlineImageUploadAction] = React.useReducer(ImageUploadReducer, undefined);
31014
31135
  React.useEffect(() => {
31015
31136
  // Initial data should be always fetched by the composite(or external caller) instead of the adapter
31016
- const fetchData = () => __awaiter$r(void 0, void 0, void 0, function* () {
31137
+ const fetchData = () => __awaiter$s(void 0, void 0, void 0, function* () {
31017
31138
  // Fetch initial data for adapter
31018
31139
  yield adapter.fetchInitialData();
31019
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.
@@ -31256,7 +31377,7 @@ const ChatScreen = (props) => {
31256
31377
  }, [uploads]);
31257
31378
  const onSendMessageHandler = React.useCallback(function (content,
31258
31379
  /* @conditional-compile-remove(file-sharing-acs) */ /* @conditional-compile-remove(rich-text-editor-composite-support) */ options) {
31259
- return __awaiter$r(this, void 0, void 0, function* () {
31380
+ return __awaiter$s(this, void 0, void 0, function* () {
31260
31381
  var _a;
31261
31382
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
31262
31383
  content = updateContentStringWithUploadedInlineImages(content, sendBoxInlineImageUploads);
@@ -31285,7 +31406,7 @@ const ChatScreen = (props) => {
31285
31406
  ]);
31286
31407
  const onUpdateMessageHandler = React.useCallback(function (messageId, content,
31287
31408
  /* @conditional-compile-remove(file-sharing-acs) */ options) {
31288
- return __awaiter$r(this, void 0, void 0, function* () {
31409
+ return __awaiter$s(this, void 0, void 0, function* () {
31289
31410
  /* @conditional-compile-remove(rich-text-editor-image-upload) */
31290
31411
  content = updateContentStringWithUploadedInlineImages(content, editBoxInlineImageUploads, messageId);
31291
31412
  yield messageThreadProps.onUpdateMessage(messageId, content,
@@ -31603,7 +31724,7 @@ const END_CALL_PAGES = [
31603
31724
 
31604
31725
  // Copyright (c) Microsoft Corporation.
31605
31726
  // Licensed under the MIT License.
31606
- var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
31727
+ var __awaiter$r = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
31607
31728
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
31608
31729
  return new (P || (P = Promise))(function (resolve, reject) {
31609
31730
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -31968,7 +32089,7 @@ const isDisabled$4 = (option) => {
31968
32089
  /**
31969
32090
  * @returns Permissions state for the camera.
31970
32091
  */
31971
- const queryCameraPermissionFromPermissionsAPI = () => __awaiter$q(void 0, void 0, void 0, function* () {
32092
+ const queryCameraPermissionFromPermissionsAPI = () => __awaiter$r(void 0, void 0, void 0, function* () {
31972
32093
  try {
31973
32094
  return (yield navigator.permissions.query({ name: 'camera' })).state;
31974
32095
  }
@@ -31981,7 +32102,7 @@ const queryCameraPermissionFromPermissionsAPI = () => __awaiter$q(void 0, void 0
31981
32102
  /**
31982
32103
  * @returns Permissions state for the microphone.
31983
32104
  */
31984
- const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$q(void 0, void 0, void 0, function* () {
32105
+ const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$r(void 0, void 0, void 0, function* () {
31985
32106
  try {
31986
32107
  return (yield navigator.permissions.query({ name: 'microphone' })).state;
31987
32108
  }
@@ -31998,7 +32119,7 @@ const queryMicrophonePermissionFromPermissionsAPI = () => __awaiter$q(void 0, vo
31998
32119
  * If permission API is not supported on this browser, permission state is set to unsupported.
31999
32120
  * @private
32000
32121
  */
32001
- 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* () {
32002
32123
  const [cameraResult, microphoneResult] = yield Promise.all([
32003
32124
  queryCameraPermissionFromPermissionsAPI(),
32004
32125
  queryMicrophonePermissionFromPermissionsAPI()
@@ -32364,7 +32485,7 @@ const getVideoBackgroundImages = (state) => state.videoBackgroundImages;
32364
32485
 
32365
32486
  // Copyright (c) Microsoft Corporation.
32366
32487
  // Licensed under the MIT License.
32367
- var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
32488
+ var __awaiter$q = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
32368
32489
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
32369
32490
  return new (P || (P = Promise))(function (resolve, reject) {
32370
32491
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -32386,20 +32507,20 @@ _component) => {
32386
32507
  };
32387
32508
  const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
32388
32509
  return {
32389
- onCreateLocalStreamView: (options) => __awaiter$p(void 0, void 0, void 0, function* () {
32510
+ onCreateLocalStreamView: (options) => __awaiter$q(void 0, void 0, void 0, function* () {
32390
32511
  return yield adapter.createStreamView(undefined, options);
32391
32512
  }),
32392
- 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* () {
32393
32514
  return yield adapter.createStreamView(userId, options);
32394
32515
  }),
32395
- onHangUp: (forEveryone) => __awaiter$p(void 0, void 0, void 0, function* () {
32516
+ onHangUp: (forEveryone) => __awaiter$q(void 0, void 0, void 0, function* () {
32396
32517
  yield adapter.leaveCall(forEveryone);
32397
32518
  }),
32398
- onToggleHold: () => __awaiter$p(void 0, void 0, void 0, function* () {
32519
+ onToggleHold: () => __awaiter$q(void 0, void 0, void 0, function* () {
32399
32520
  var _a;
32400
32521
  return ((_a = adapter.getState().call) === null || _a === void 0 ? void 0 : _a.state) === 'LocalHold' ? yield adapter.resumeCall() : yield adapter.holdCall();
32401
32522
  }),
32402
- 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* () {
32403
32524
  if ('communicationUserId' in participant) {
32404
32525
  return yield adapter.addParticipant(participant);
32405
32526
  }
@@ -32407,10 +32528,10 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
32407
32528
  return yield adapter.addParticipant(participant, options);
32408
32529
  }
32409
32530
  }),
32410
- onSendDtmfTone: (dtmfTone) => __awaiter$p(void 0, void 0, void 0, function* () {
32531
+ onSendDtmfTone: (dtmfTone) => __awaiter$q(void 0, void 0, void 0, function* () {
32411
32532
  yield adapter.sendDtmfTone(dtmfTone);
32412
32533
  }),
32413
- onRemoveParticipant: (userId) => __awaiter$p(void 0, void 0, void 0, function* () {
32534
+ onRemoveParticipant: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
32414
32535
  if (typeof userId === 'string') {
32415
32536
  yield adapter.removeParticipant(userId);
32416
32537
  }
@@ -32418,148 +32539,148 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
32418
32539
  yield adapter.removeParticipant(_toCommunicationIdentifier(userId));
32419
32540
  }
32420
32541
  }),
32421
- onRaiseHand: () => __awaiter$p(void 0, void 0, void 0, function* () {
32542
+ onRaiseHand: () => __awaiter$q(void 0, void 0, void 0, function* () {
32422
32543
  yield adapter.raiseHand();
32423
32544
  }),
32424
- onLowerHand: () => __awaiter$p(void 0, void 0, void 0, function* () {
32545
+ onLowerHand: () => __awaiter$q(void 0, void 0, void 0, function* () {
32425
32546
  yield adapter.lowerHand();
32426
32547
  }),
32427
- onToggleRaiseHand: () => __awaiter$p(void 0, void 0, void 0, function* () {
32548
+ onToggleRaiseHand: () => __awaiter$q(void 0, void 0, void 0, function* () {
32428
32549
  var _b;
32429
32550
  ((_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.raiseHand.localParticipantRaisedHand)
32430
32551
  ? yield adapter.lowerHand()
32431
32552
  : yield adapter.raiseHand();
32432
32553
  }),
32433
- onReactionClick: (reaction) => __awaiter$p(void 0, void 0, void 0, function* () {
32554
+ onReactionClick: (reaction) => __awaiter$q(void 0, void 0, void 0, function* () {
32434
32555
  yield adapter.onReactionClick(reaction);
32435
32556
  }),
32436
- 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* () {
32437
32558
  yield adapter.setCamera(deviceInfo, options);
32438
32559
  }),
32439
- onSelectMicrophone: (deviceInfo) => __awaiter$p(void 0, void 0, void 0, function* () {
32560
+ onSelectMicrophone: (deviceInfo) => __awaiter$q(void 0, void 0, void 0, function* () {
32440
32561
  yield adapter.setMicrophone(deviceInfo);
32441
32562
  }),
32442
- onSelectSpeaker: (deviceInfo) => __awaiter$p(void 0, void 0, void 0, function* () {
32563
+ onSelectSpeaker: (deviceInfo) => __awaiter$q(void 0, void 0, void 0, function* () {
32443
32564
  yield adapter.setSpeaker(deviceInfo);
32444
32565
  }),
32445
32566
  onStartCall: (participants, options) => {
32446
32567
  const rawIds = participants.map((participant) => toFlatCommunicationIdentifier(participant));
32447
32568
  return adapter.startCall(rawIds, options);
32448
32569
  },
32449
- onStartScreenShare: () => __awaiter$p(void 0, void 0, void 0, function* () {
32570
+ onStartScreenShare: () => __awaiter$q(void 0, void 0, void 0, function* () {
32450
32571
  yield adapter.startScreenShare();
32451
32572
  }),
32452
- onStopScreenShare: () => __awaiter$p(void 0, void 0, void 0, function* () {
32573
+ onStopScreenShare: () => __awaiter$q(void 0, void 0, void 0, function* () {
32453
32574
  yield adapter.stopScreenShare();
32454
32575
  }),
32455
- onToggleCamera: (options) => __awaiter$p(void 0, void 0, void 0, function* () {
32576
+ onToggleCamera: (options) => __awaiter$q(void 0, void 0, void 0, function* () {
32456
32577
  isCameraOn(adapter.getState()) ? yield adapter.stopCamera() : yield adapter.startCamera(options);
32457
32578
  }),
32458
- onToggleMicrophone: () => __awaiter$p(void 0, void 0, void 0, function* () {
32579
+ onToggleMicrophone: () => __awaiter$q(void 0, void 0, void 0, function* () {
32459
32580
  var _c;
32460
32581
  return ((_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.isMuted) ? yield adapter.unmute() : yield adapter.mute();
32461
32582
  }),
32462
- onToggleScreenShare: () => __awaiter$p(void 0, void 0, void 0, function* () {
32583
+ onToggleScreenShare: () => __awaiter$q(void 0, void 0, void 0, function* () {
32463
32584
  var _d;
32464
32585
  return ((_d = adapter.getState().call) === null || _d === void 0 ? void 0 : _d.isScreenSharingOn)
32465
32586
  ? yield adapter.stopScreenShare()
32466
32587
  : yield adapter.startScreenShare();
32467
32588
  }),
32468
- onStartLocalVideo: () => __awaiter$p(void 0, void 0, void 0, function* () {
32589
+ onStartLocalVideo: () => __awaiter$q(void 0, void 0, void 0, function* () {
32469
32590
  if (adapter.getState().call) {
32470
32591
  return adapter.startCamera();
32471
32592
  }
32472
32593
  }),
32473
- onDisposeLocalStreamView: () => __awaiter$p(void 0, void 0, void 0, function* () {
32594
+ onDisposeLocalStreamView: () => __awaiter$q(void 0, void 0, void 0, function* () {
32474
32595
  return adapter.disposeLocalVideoStreamView();
32475
32596
  }),
32476
- onDisposeRemoteStreamView: (userId) => __awaiter$p(void 0, void 0, void 0, function* () {
32597
+ onDisposeRemoteStreamView: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
32477
32598
  return adapter.disposeStreamView(userId);
32478
32599
  }),
32479
- onDisposeRemoteScreenShareStreamView: (userId) => __awaiter$p(void 0, void 0, void 0, function* () {
32600
+ onDisposeRemoteScreenShareStreamView: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
32480
32601
  return adapter.disposeScreenShareStreamView(userId);
32481
32602
  }),
32482
- onDisposeLocalScreenShareStreamView: () => __awaiter$p(void 0, void 0, void 0, function* () {
32603
+ onDisposeLocalScreenShareStreamView: () => __awaiter$q(void 0, void 0, void 0, function* () {
32483
32604
  return adapter.disposeScreenShareStreamView('');
32484
32605
  }),
32485
- onDisposeRemoteVideoStreamView: (userId) => __awaiter$p(void 0, void 0, void 0, function* () {
32606
+ onDisposeRemoteVideoStreamView: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
32486
32607
  return adapter.disposeRemoteVideoStreamView(userId);
32487
32608
  }),
32488
32609
  /* @conditional-compile-remove(call-readiness) */
32489
- askDevicePermission: (constrain) => __awaiter$p(void 0, void 0, void 0, function* () {
32610
+ askDevicePermission: (constrain) => __awaiter$q(void 0, void 0, void 0, function* () {
32490
32611
  yield adapter.askDevicePermission(constrain);
32491
32612
  }),
32492
- onRemoveVideoBackgroundEffects: () => __awaiter$p(void 0, void 0, void 0, function* () {
32613
+ onRemoveVideoBackgroundEffects: () => __awaiter$q(void 0, void 0, void 0, function* () {
32493
32614
  return yield adapter.stopVideoBackgroundEffects();
32494
32615
  }),
32495
- onBlurVideoBackground: (backgroundBlurConfig) => __awaiter$p(void 0, void 0, void 0, function* () {
32616
+ onBlurVideoBackground: (backgroundBlurConfig) => __awaiter$q(void 0, void 0, void 0, function* () {
32496
32617
  const blurConfig = Object.assign({ effectName: 'blur' }, backgroundBlurConfig);
32497
32618
  return yield adapter.startVideoBackgroundEffect(blurConfig);
32498
32619
  }),
32499
- onReplaceVideoBackground: (backgroundReplacementConfig) => __awaiter$p(void 0, void 0, void 0, function* () {
32620
+ onReplaceVideoBackground: (backgroundReplacementConfig) => __awaiter$q(void 0, void 0, void 0, function* () {
32500
32621
  const replacementConfig = Object.assign({ effectName: 'replacement' }, backgroundReplacementConfig);
32501
32622
  return yield adapter.startVideoBackgroundEffect(replacementConfig);
32502
32623
  }),
32503
- onStartNoiseSuppressionEffect: () => __awaiter$p(void 0, void 0, void 0, function* () {
32624
+ onStartNoiseSuppressionEffect: () => __awaiter$q(void 0, void 0, void 0, function* () {
32504
32625
  return yield adapter.startNoiseSuppressionEffect();
32505
32626
  }),
32506
- onStopNoiseSuppressionEffect: () => __awaiter$p(void 0, void 0, void 0, function* () {
32627
+ onStopNoiseSuppressionEffect: () => __awaiter$q(void 0, void 0, void 0, function* () {
32507
32628
  return yield adapter.stopNoiseSuppressionEffect();
32508
32629
  }),
32509
- onStartCaptions: (options) => __awaiter$p(void 0, void 0, void 0, function* () {
32630
+ onStartCaptions: (options) => __awaiter$q(void 0, void 0, void 0, function* () {
32510
32631
  yield adapter.startCaptions(options);
32511
32632
  }),
32512
- onStopCaptions: () => __awaiter$p(void 0, void 0, void 0, function* () {
32633
+ onStopCaptions: () => __awaiter$q(void 0, void 0, void 0, function* () {
32513
32634
  yield adapter.stopCaptions();
32514
32635
  }),
32515
- onSetSpokenLanguage: (language) => __awaiter$p(void 0, void 0, void 0, function* () {
32636
+ onSetSpokenLanguage: (language) => __awaiter$q(void 0, void 0, void 0, function* () {
32516
32637
  yield adapter.setSpokenLanguage(language);
32517
32638
  }),
32518
- onSetCaptionLanguage: (language) => __awaiter$p(void 0, void 0, void 0, function* () {
32639
+ onSetCaptionLanguage: (language) => __awaiter$q(void 0, void 0, void 0, function* () {
32519
32640
  yield adapter.setCaptionLanguage(language);
32520
32641
  }),
32521
- onSubmitSurvey: (survey) => __awaiter$p(void 0, void 0, void 0, function* () {
32642
+ onSubmitSurvey: (survey) => __awaiter$q(void 0, void 0, void 0, function* () {
32522
32643
  return yield adapter.submitSurvey(survey);
32523
32644
  }),
32524
- onStartSpotlight: (userIds) => __awaiter$p(void 0, void 0, void 0, function* () {
32645
+ onStartSpotlight: (userIds) => __awaiter$q(void 0, void 0, void 0, function* () {
32525
32646
  yield adapter.startSpotlight(userIds);
32526
32647
  }),
32527
- onStopSpotlight: (userIds) => __awaiter$p(void 0, void 0, void 0, function* () {
32648
+ onStopSpotlight: (userIds) => __awaiter$q(void 0, void 0, void 0, function* () {
32528
32649
  yield adapter.stopSpotlight(userIds);
32529
32650
  }),
32530
- onStopAllSpotlight: () => __awaiter$p(void 0, void 0, void 0, function* () {
32651
+ onStopAllSpotlight: () => __awaiter$q(void 0, void 0, void 0, function* () {
32531
32652
  yield adapter.stopAllSpotlight();
32532
32653
  }),
32533
32654
  onStartLocalSpotlight: (capabilities === null || capabilities === void 0 ? void 0 : capabilities.spotlightParticipant.isPresent)
32534
- ? () => __awaiter$p(void 0, void 0, void 0, function* () {
32655
+ ? () => __awaiter$q(void 0, void 0, void 0, function* () {
32535
32656
  yield adapter.startSpotlight();
32536
32657
  })
32537
32658
  : undefined,
32538
- onStopLocalSpotlight: () => __awaiter$p(void 0, void 0, void 0, function* () {
32659
+ onStopLocalSpotlight: () => __awaiter$q(void 0, void 0, void 0, function* () {
32539
32660
  yield adapter.stopSpotlight();
32540
32661
  }),
32541
32662
  onStartRemoteSpotlight: (capabilities === null || capabilities === void 0 ? void 0 : capabilities.spotlightParticipant.isPresent)
32542
- ? (userIds) => __awaiter$p(void 0, void 0, void 0, function* () {
32663
+ ? (userIds) => __awaiter$q(void 0, void 0, void 0, function* () {
32543
32664
  yield adapter.startSpotlight(userIds);
32544
32665
  })
32545
32666
  : undefined,
32546
32667
  onStopRemoteSpotlight: (capabilities === null || capabilities === void 0 ? void 0 : capabilities.removeParticipantsSpotlight.isPresent)
32547
- ? (userIds) => __awaiter$p(void 0, void 0, void 0, function* () {
32668
+ ? (userIds) => __awaiter$q(void 0, void 0, void 0, function* () {
32548
32669
  yield adapter.stopSpotlight(userIds);
32549
32670
  })
32550
32671
  : undefined,
32551
- onMuteParticipant: (userId) => __awaiter$p(void 0, void 0, void 0, function* () {
32672
+ onMuteParticipant: (userId) => __awaiter$q(void 0, void 0, void 0, function* () {
32552
32673
  yield adapter.muteParticipant(userId);
32553
32674
  }),
32554
- onMuteAllRemoteParticipants: () => __awaiter$p(void 0, void 0, void 0, function* () {
32675
+ onMuteAllRemoteParticipants: () => __awaiter$q(void 0, void 0, void 0, function* () {
32555
32676
  yield adapter.muteAllRemoteParticipants();
32556
32677
  }),
32557
32678
  /* @conditional-compile-remove(together-mode) */
32558
- onCreateTogetherModeStreamView: (options) => __awaiter$p(void 0, void 0, void 0, function* () {
32679
+ onCreateTogetherModeStreamView: (options) => __awaiter$q(void 0, void 0, void 0, function* () {
32559
32680
  return yield adapter.createTogetherModeStreamViews(options);
32560
32681
  }),
32561
32682
  /* @conditional-compile-remove(together-mode) */
32562
- onStartTogetherMode: () => __awaiter$p(void 0, void 0, void 0, function* () {
32683
+ onStartTogetherMode: () => __awaiter$q(void 0, void 0, void 0, function* () {
32563
32684
  return yield adapter.startTogetherMode();
32564
32685
  }),
32565
32686
  /* @conditional-compile-remove(together-mode) */
@@ -32567,7 +32688,7 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
32567
32688
  return adapter.setTogetherModeSceneSize(width, height);
32568
32689
  },
32569
32690
  /* @conditional-compile-remove(together-mode) */
32570
- onDisposeTogetherModeStreamViews: () => __awaiter$p(void 0, void 0, void 0, function* () {
32691
+ onDisposeTogetherModeStreamViews: () => __awaiter$q(void 0, void 0, void 0, function* () {
32571
32692
  return yield adapter.disposeTogetherModeStreamViews();
32572
32693
  })
32573
32694
  };
@@ -32704,7 +32825,7 @@ const MoreButton = (props) => {
32704
32825
 
32705
32826
  // Copyright (c) Microsoft Corporation.
32706
32827
  // Licensed under the MIT License.
32707
- var __awaiter$o = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
32828
+ var __awaiter$p = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
32708
32829
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
32709
32830
  return new (P || (P = Promise))(function (resolve, reject) {
32710
32831
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -32726,7 +32847,7 @@ const CaptionsBannerMoreButton = (props) => {
32726
32847
  tooltipOffContent: localeStrings.strings.call.captionsBannerMoreButtonTooltip
32727
32848
  }), [localeStrings]);
32728
32849
  const moreButtonContextualMenuItems = [];
32729
- 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* () {
32730
32851
  yield startCaptionsButtonHandlers.onStartCaptions({
32731
32852
  spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage
32732
32853
  });
@@ -32939,7 +33060,7 @@ const buttonTextStyles = { label: { fontSize: '0.875rem' } };
32939
33060
 
32940
33061
  // Copyright (c) Microsoft Corporation.
32941
33062
  // Licensed under the MIT License.
32942
- var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
33063
+ var __awaiter$o = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
32943
33064
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
32944
33065
  return new (P || (P = Promise))(function (resolve, reject) {
32945
33066
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -32986,7 +33107,7 @@ const EndCall = (props) => {
32986
33107
  onHangUp && onHangUp(hangUpForEveryone);
32987
33108
  toggleConfirm();
32988
33109
  }, [onHangUp, toggleConfirm]);
32989
- 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* () {
32990
33111
  if (props.mobileView ||
32991
33112
  forEveryone === false /* value being false(not undefined) because it comes from endCall option */) {
32992
33113
  onHangUp();
@@ -33368,7 +33489,7 @@ const callStatusSelector = reselect.createSelector([getCallStatus, getIsScreenSh
33368
33489
 
33369
33490
  // Copyright (c) Microsoft Corporation.
33370
33491
  // Licensed under the MIT License.
33371
- var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
33492
+ var __awaiter$n = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
33372
33493
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
33373
33494
  return new (P || (P = Promise))(function (resolve, reject) {
33374
33495
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -33399,7 +33520,7 @@ const CallControls = (props) => {
33399
33520
  const localeStrings = useLocale();
33400
33521
  const [isDeepNoiseSuppressionOn, setDeepNoiseSuppressionOn] = React.useState(false);
33401
33522
  const adapter = useAdapter();
33402
- 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* () {
33403
33524
  yield adapter.startNoiseSuppressionEffect();
33404
33525
  }), [adapter]);
33405
33526
  const deepNoiseSuppresionEffectsDependency = useSelector$1(getDeepNoiseSuppresionEffectsDependency);
@@ -33416,7 +33537,7 @@ const CallControls = (props) => {
33416
33537
  const showNoiseSuppressionButton = !!(deepNoiseSuppresionEffectsDependency &&
33417
33538
  !hideDeepNoiseSuppressionButton &&
33418
33539
  !isSafari);
33419
- 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* () {
33420
33541
  if (isDeepNoiseSuppressionOn) {
33421
33542
  yield adapter.stopNoiseSuppressionEffect();
33422
33543
  setDeepNoiseSuppressionOn(false);
@@ -33812,7 +33933,7 @@ const showDtmfDialer = (callees, remoteParticipants) => {
33812
33933
 
33813
33934
  // Copyright (c) Microsoft Corporation.
33814
33935
  // Licensed under the MIT License.
33815
- var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
33936
+ var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
33816
33937
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
33817
33938
  return new (P || (P = Promise))(function (resolve, reject) {
33818
33939
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -33831,7 +33952,7 @@ const DesktopMoreButton = (props) => {
33831
33952
  const holdButtonProps = usePropsFor$1(HoldButton);
33832
33953
  const startCaptionsButtonProps = useAdaptedSelector(_startCaptionsButtonSelector);
33833
33954
  const startCaptionsButtonHandlers = useHandlers();
33834
- 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* () {
33835
33956
  yield startCaptionsButtonHandlers.onStartCaptions({
33836
33957
  spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage
33837
33958
  });
@@ -34323,7 +34444,7 @@ const modalLayerHostStyle = {
34323
34444
 
34324
34445
  // Copyright (c) Microsoft Corporation.
34325
34446
  // Licensed under the MIT License.
34326
- var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
34447
+ var __awaiter$l = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
34327
34448
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34328
34449
  return new (P || (P = Promise))(function (resolve, reject) {
34329
34450
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -34364,7 +34485,7 @@ const useMinMaxDragPosition = (modalLayerHostId, rtl) => {
34364
34485
  /**
34365
34486
  * @private
34366
34487
  */
34367
- 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* () {
34368
34489
  const delayMs = 500;
34369
34490
  let retryCount = 0;
34370
34491
  while (!checkCondition()) {
@@ -34453,7 +34574,7 @@ const timerTextStyle = {
34453
34574
 
34454
34575
  // Copyright (c) Microsoft Corporation.
34455
34576
  // Licensed under the MIT License.
34456
- var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
34577
+ var __awaiter$k = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
34457
34578
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34458
34579
  return new (P || (P = Promise))(function (resolve, reject) {
34459
34580
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -34550,7 +34671,7 @@ const CommonCallControlBar = (props) => {
34550
34671
  tooltipContent: callStrings.exitSpotlightButtonTooltip
34551
34672
  }), [callStrings]);
34552
34673
  const [isDeepNoiseSuppressionOn, setDeepNoiseSuppressionOn] = React.useState(false);
34553
- 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* () {
34554
34675
  yield props.callAdapter.startNoiseSuppressionEffect();
34555
34676
  }), [props.callAdapter]);
34556
34677
  const environmentInfo = useSelector$1(getEnvironmentInfo);
@@ -34567,7 +34688,7 @@ const CommonCallControlBar = (props) => {
34567
34688
  !isSafari
34568
34689
  ? true
34569
34690
  : false;
34570
- 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* () {
34571
34692
  if (isDeepNoiseSuppressionOn) {
34572
34693
  yield props.callAdapter.stopNoiseSuppressionEffect();
34573
34694
  setDeepNoiseSuppressionOn(false);
@@ -34645,7 +34766,7 @@ const CommonCallControlBar = (props) => {
34645
34766
  !props.mobileView &&
34646
34767
  assignedBreakoutRoom &&
34647
34768
  assignedBreakoutRoom.state === 'open' &&
34648
- 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* () {
34649
34770
  assignedBreakoutRoom.join();
34650
34771
  }), styles: commonButtonStyles })),
34651
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 })),
@@ -34918,7 +35039,7 @@ const SpokenLanguageSettingsDrawer = (props) => {
34918
35039
 
34919
35040
  // Copyright (c) Microsoft Corporation.
34920
35041
  // Licensed under the MIT License.
34921
- var __awaiter$i = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
35042
+ var __awaiter$j = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
34922
35043
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34923
35044
  return new (P || (P = Promise))(function (resolve, reject) {
34924
35045
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -34961,7 +35082,7 @@ const MoreDrawer = (props) => {
34961
35082
  if (props.reactionResources !== undefined) {
34962
35083
  drawerMenuItems.push({
34963
35084
  itemKey: 'reactions',
34964
- 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* () {
34965
35086
  var _h;
34966
35087
  (_h = props.onReactionClick) === null || _h === void 0 ? void 0 : _h.call(props, reaction);
34967
35088
  onLightDismiss();
@@ -35183,7 +35304,7 @@ const MoreDrawer = (props) => {
35183
35304
  const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = React.useState(false);
35184
35305
  const [currentSpokenLanguage, setCurrentSpokenLanguage] = React.useState((_f = captionSettingsProp.currentSpokenLanguage) !== null && _f !== void 0 ? _f : 'en-us');
35185
35306
  const [currentCaptionLanguage, setCurrentCaptionLanguage] = React.useState((_g = captionSettingsProp.currentCaptionLanguage) !== null && _g !== void 0 ? _g : _spokenLanguageToCaptionLanguage[currentSpokenLanguage]);
35186
- 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* () {
35187
35308
  if (!captionSettingsProp.isCaptionsFeatureActive) {
35188
35309
  yield startCaptionsButtonHandlers.onStartCaptions({
35189
35310
  spokenLanguage: currentSpokenLanguage
@@ -35617,7 +35738,7 @@ const SidePaneHeader = (props) => {
35617
35738
  return (React.createElement(react.Stack, { horizontal: true, horizontalAlign: "space-between", styles: sidePaneHeaderContainerStyles, verticalAlign: "center" },
35618
35739
  React.createElement(react.Stack.Item, { role: "heading", styles: sidePaneHeaderStyles, "aria-label": props.headingText, "aria-level": 2 }, props.headingText),
35619
35740
  React.createElement(react.Stack.Item, null,
35620
- 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 }))));
35621
35742
  };
35622
35743
  const SidePaneMobileHeader = (props) => {
35623
35744
  const { headingText, dismissSidePaneButtonAriaLabel, dismissSidePaneButtonAriaDescription, onClose } = props;
@@ -35954,7 +36075,7 @@ const AddPeopleDropdown = (props) => {
35954
36075
  return (React.createElement(react.Stack, null,
35955
36076
  React.createElement(Announcer$1, { ariaLive: 'assertive', announcementString: announcerStrings }),
35956
36077
  defaultMenuProps.items.length > 0 && (React.createElement(react.Stack.Item, { styles: copyLinkButtonContainerStyles },
35957
- 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" }),
35958
36079
  inviteLinkCopiedRecently && (React.createElement(CalloutWithIcon, { targetId: calloutButtonId, text: (_a = strings.copyInviteLinkButtonActionedLabel) !== null && _a !== void 0 ? _a : '', doNotLayer: true })))),
35959
36080
  addPeopleDrawerMenuItems.length > 0 && (React.createElement(react.Stack, { styles: drawerContainerStyles(), "data-ui-id": "call-add-people-dropdown" },
35960
36081
  React.createElement(_DrawerMenu, { disableMaxHeight: true, onLightDismiss: () => setAddPeopleDrawerMenuItems([]), items: addPeopleDrawerMenuItems }))),
@@ -36013,7 +36134,7 @@ const AddPeopleButton = (props) => {
36013
36134
 
36014
36135
  // Copyright (c) Microsoft Corporation.
36015
36136
  // Licensed under the MIT License.
36016
- var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
36137
+ var __awaiter$i = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
36017
36138
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
36018
36139
  return new (P || (P = Promise))(function (resolve, reject) {
36019
36140
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -36034,10 +36155,10 @@ const PeoplePaneContent = (props) => {
36034
36155
  return localeStrings.strings.call;
36035
36156
  };
36036
36157
  const strings = getStrings();
36037
- 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* () {
36038
36159
  yield adapter.removeParticipant(participantId);
36039
36160
  }), [adapter]);
36040
- 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* () {
36041
36162
  yield adapter.addParticipant(participant, options);
36042
36163
  }), [adapter]);
36043
36164
  const participantListDefaultProps = usePropsFor$1(ParticipantList$n);
@@ -36068,7 +36189,7 @@ const PeoplePaneContent = (props) => {
36068
36189
  return drawerMenuItems && drawerMenuItems.length > 0 ? () => setDrawerMenuItems(drawerMenuItems) : undefined;
36069
36190
  }, [participantListHeadingMoreButtonProps === null || participantListHeadingMoreButtonProps === void 0 ? void 0 : participantListHeadingMoreButtonProps.items, setDrawerMenuItems]);
36070
36191
  const participantListProps = React.useMemo(() => {
36071
- 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); });
36072
36193
  return Object.assign(Object.assign({}, participantListDefaultProps), {
36073
36194
  // Passing undefined callback for mobile to avoid context menus for participants in ParticipantList are clicked
36074
36195
  onRemoveParticipant: props.mobileView ? undefined : onRemoveAParticipant,
@@ -36614,7 +36735,7 @@ const localVideoSelector = reselect__namespace.createSelector([callStatusSelecto
36614
36735
 
36615
36736
  // Copyright (c) Microsoft Corporation.
36616
36737
  // Licensed under the MIT License.
36617
- var __awaiter$g = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
36738
+ var __awaiter$h = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
36618
36739
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
36619
36740
  return new (P || (P = Promise))(function (resolve, reject) {
36620
36741
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -36680,7 +36801,7 @@ const VideoEffectsPaneContent = (props) => {
36680
36801
  strings.blurBackgroundTooltip,
36681
36802
  props.backgroundImages
36682
36803
  ]);
36683
- 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* () {
36684
36805
  if (effectKey === 'blur') {
36685
36806
  const blurEffect = {
36686
36807
  effectName: effectKey
@@ -36732,8 +36853,8 @@ const VideoEffectsPaneTrampoline = (onDismissError, updateFocusHandle, activeVid
36732
36853
  const showWarning = !isCameraOn && selectedEffect !== 'none';
36733
36854
  const locale = useLocale();
36734
36855
  return (React.createElement(react.Stack, { tokens: { childrenGap: '0.75rem' }, className: react.mergeStyles({ paddingLeft: '0.5rem' }) },
36735
- activeVideoEffectError && isCameraOn && (React.createElement(react.MessageBar, { messageBarType: react.MessageBarType.error, onDismiss: () => onDismissError(activeVideoEffectError) }, locale.strings.call.unableToStartVideoEffect)),
36736
- 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)),
36737
36858
  React.createElement(_VideoBackgroundEffectsPicker, { label: locale.strings.call.videoEffectsPaneBackgroundSelectionTitle, styles: backgroundPickerStyles, options: selectableVideoEffects !== null && selectableVideoEffects !== void 0 ? selectableVideoEffects : [], onChange: onEffectChange, selectedEffectKey: selectedEffect, componentRef: updateFocusHandle })));
36738
36859
  };
36739
36860
  const backgroundPickerStyles = {
@@ -37139,7 +37260,7 @@ const messageBarStyles = {
37139
37260
 
37140
37261
  // Copyright (c) Microsoft Corporation.
37141
37262
  // Licensed under the MIT License.
37142
- var __awaiter$f = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
37263
+ var __awaiter$g = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
37143
37264
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37144
37265
  return new (P || (P = Promise))(function (resolve, reject) {
37145
37266
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -37171,7 +37292,7 @@ const useLocalSpotlightCallbacksWithPrompt = (onStartLocalSpotlight, onStopLocal
37171
37292
  }, [onStartLocalSpotlight, onStopLocalSpotlight, setIsPromptOpen, setPromptProps, strings]);
37172
37293
  };
37173
37294
  const getStartLocalSpotlightWithPromptCallback = (onStartSpotlight, setIsPromptOpen, setPromptProps, strings) => {
37174
- return () => __awaiter$f(void 0, void 0, void 0, function* () {
37295
+ return () => __awaiter$g(void 0, void 0, void 0, function* () {
37175
37296
  setPromptProps({
37176
37297
  heading: strings.spotlightPrompt.startSpotlightHeading,
37177
37298
  text: strings.spotlightPrompt.startSpotlightOnSelfText,
@@ -37188,7 +37309,7 @@ const getStartLocalSpotlightWithPromptCallback = (onStartSpotlight, setIsPromptO
37188
37309
  });
37189
37310
  };
37190
37311
  const getStopLocalSpotlightWithPromptCallback = (onStopSpotlight, setIsPromptOpen, setPromptProps, strings) => {
37191
- return () => __awaiter$f(void 0, void 0, void 0, function* () {
37312
+ return () => __awaiter$g(void 0, void 0, void 0, function* () {
37192
37313
  setPromptProps({
37193
37314
  heading: strings.spotlightPrompt.stopSpotlightOnSelfHeading,
37194
37315
  text: strings.spotlightPrompt.stopSpotlightOnSelfText,
@@ -37226,7 +37347,7 @@ const useRemoteSpotlightCallbacksWithPrompt = (onStartRemoteSpotlight, onStopRem
37226
37347
  }, [onStartRemoteSpotlight, onStopRemoteSpotlight, setIsPromptOpen, setPromptProps, strings]);
37227
37348
  };
37228
37349
  const getStartRemoteSpotlightWithPromptCallback = (onStartSpotlight, setIsPromptOpen, setPromptProps, strings) => {
37229
- return (userIds) => __awaiter$f(void 0, void 0, void 0, function* () {
37350
+ return (userIds) => __awaiter$g(void 0, void 0, void 0, function* () {
37230
37351
  if (userIds.length > 1) {
37231
37352
  onStartSpotlight(userIds);
37232
37353
  }
@@ -37246,7 +37367,7 @@ const getStartRemoteSpotlightWithPromptCallback = (onStartSpotlight, setIsPrompt
37246
37367
  });
37247
37368
  };
37248
37369
  const getStopRemoteSpotlightWithPromptCallback = (onStopSpotlight, setIsPromptOpen, setPromptProps, strings) => {
37249
- return (userIds) => __awaiter$f(void 0, void 0, void 0, function* () {
37370
+ return (userIds) => __awaiter$g(void 0, void 0, void 0, function* () {
37250
37371
  if (userIds.length > 1) {
37251
37372
  onStopSpotlight(userIds);
37252
37373
  }
@@ -37284,7 +37405,7 @@ const useStopAllSpotlightCallbackWithPrompt = (stopAllSpotlight, setIsPromptOpen
37284
37405
  }, [stopAllSpotlight, setIsPromptOpen, setPromptProps, strings]);
37285
37406
  };
37286
37407
  const getStopAllSpotlightCallbackWithPromptCallback = (stopAllSpotlight, setIsPromptOpen, setPromptProps, strings) => {
37287
- return () => __awaiter$f(void 0, void 0, void 0, function* () {
37408
+ return () => __awaiter$g(void 0, void 0, void 0, function* () {
37288
37409
  setPromptProps({
37289
37410
  heading: strings.spotlightPrompt.stopAllSpotlightHeading,
37290
37411
  text: strings.spotlightPrompt.stopAllSpotlightText,
@@ -37846,19 +37967,20 @@ const containerStyles$1 = {
37846
37967
  root: {
37847
37968
  height: '100%',
37848
37969
  width: '100%',
37849
- position: 'relative'
37970
+ position: 'relative',
37971
+ padding: '0.5rem'
37850
37972
  }
37851
37973
  };
37852
37974
  /**
37853
37975
  * @private
37854
37976
  */
37855
- const overlayBackgroundStyles = (palette, isVideoReady) => {
37977
+ const overlayBackgroundStyles = (isVideoReady) => {
37856
37978
  return {
37857
37979
  position: 'absolute',
37858
37980
  height: '100%',
37859
37981
  width: '100%',
37860
- background: isVideoReady ? 'black' : palette.neutralLighterAlt,
37861
- opacity: isVideoReady ? 0.6 : 1,
37982
+ background: isVideoReady ? 'black' : undefined,
37983
+ opacity: isVideoReady ? 0.6 : undefined,
37862
37984
  zIndex: OVERLAY_BACKGROUND_ZINDEX
37863
37985
  };
37864
37986
  };
@@ -37892,7 +38014,6 @@ const ExpandedLocalVideoTile = (props) => {
37892
38014
  const videoStream = props.localParticipantVideoStream;
37893
38015
  const isVideoReady = (_a = videoStream === null || videoStream === void 0 ? void 0 : videoStream.isAvailable) !== null && _a !== void 0 ? _a : false;
37894
38016
  const renderElement = videoStream === null || videoStream === void 0 ? void 0 : videoStream.renderElement;
37895
- const palette = useTheme().palette;
37896
38017
  React.useEffect(() => {
37897
38018
  if (videoStream && isVideoReady) {
37898
38019
  props.onCreateLocalStreamView &&
@@ -37901,7 +38022,7 @@ const ExpandedLocalVideoTile = (props) => {
37901
38022
  }, [isVideoReady, videoStream, props, renderElement]);
37902
38023
  return (React.createElement(react.Stack, { horizontalAlign: "center", verticalAlign: "center", styles: containerStyles$1, grow: true },
37903
38024
  React.createElement(VideoTile, { styles: videoTileStyles, renderElement: renderElement ? React.createElement(StreamMedia, { videoStreamElement: renderElement }) : undefined, onRenderPlaceholder: onRenderEmptyPlaceholder }, props.overlayContent && (React.createElement(React.Fragment, null,
37904
- React.createElement(react.Stack, { className: react.mergeStyles(overlayBackgroundStyles(palette, isVideoReady)) }),
38025
+ React.createElement(react.Stack, { className: react.mergeStyles(overlayBackgroundStyles(isVideoReady)) }),
37905
38026
  React.createElement(react.Stack, { horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(overlayContentStyles) }, props.overlayContent))))));
37906
38027
  };
37907
38028
 
@@ -38078,7 +38199,7 @@ const DtmfDialpadContentTimerStyles = {
38078
38199
 
38079
38200
  // Copyright (c) Microsoft Corporation.
38080
38201
  // Licensed under the MIT License.
38081
- var __awaiter$e = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
38202
+ var __awaiter$f = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
38082
38203
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38083
38204
  return new (P || (P = Promise))(function (resolve, reject) {
38084
38205
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
@@ -38107,7 +38228,7 @@ const DtmfDialpadPageContent = (props) => {
38107
38228
  React.createElement(react.Stack, { verticalAlign: 'center', style: { margin: 'auto' } },
38108
38229
  React.createElement(DtmfDialerContentTimer, null),
38109
38230
  React.createElement(react.Text, { style: { margin: 'auto' } }, calleeName && calleeName !== 'Unnamed participant' ? calleeName === null || calleeName === void 0 ? void 0 : calleeName.toString() : ''),
38110
- 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* () {
38111
38232
  yield adapter.sendDtmfTone(tone);
38112
38233
  }), longPressTrigger: props.mobileView ? 'touch' : 'mouseAndTouch', dialpadMode: 'dtmf', dtmfAudioContext: props.compositeAudioContext }))));
38113
38234
  };
@@ -38610,6 +38731,15 @@ const logoStyles = (shape) => ({
38610
38731
 
38611
38732
  // Copyright (c) Microsoft Corporation.
38612
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
+ };
38613
38743
  const getDropDownList = (list) => {
38614
38744
  // Remove duplicates
38615
38745
  const noDuplicates = new Map();
@@ -38698,15 +38828,15 @@ const LocalDeviceSettings = (props) => {
38698
38828
  : props.cameras
38699
38829
  ? (_a = props.cameras[0]) === null || _a === void 0 ? void 0 : _a.id
38700
38830
  : ''
38701
- : 'deniedOrUnknown', onChange: (event, option, index) => {
38831
+ : 'deniedOrUnknown', onChange: (event, option, index) => __awaiter$e(void 0, void 0, void 0, function* () {
38702
38832
  const camera = props.cameras[index !== null && index !== void 0 ? index : 0];
38703
38833
  if (camera) {
38704
- props.onSelectCamera(camera, localVideoViewOptions);
38834
+ yield props.onSelectCamera(camera, localVideoViewOptions);
38705
38835
  }
38706
38836
  else {
38707
38837
  console.error('No cameras available');
38708
38838
  }
38709
- }, onRenderTitle: (props) => onRenderTitle('Camera', props) }));
38839
+ }), onRenderTitle: (props) => onRenderTitle('Camera', props) }));
38710
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
38711
38841
  ? undefined
38712
38842
  : locale.strings.call.microphonePermissionDenied, options: micPermissionGranted ? getDropDownList(props.microphones) : [{ key: 'deniedOrUnknown', text: '' }], defaultSelectedKey: micPermissionGranted
@@ -38908,6 +39038,7 @@ var __awaiter$d = (window && window.__awaiter) || function (thisArg, _arguments,
38908
39038
  * @private
38909
39039
  */
38910
39040
  const LocalPreview = (props) => {
39041
+ var _a;
38911
39042
  const locale = useLocale();
38912
39043
  const cameraButtonProps = usePropsFor$1(CameraButton);
38913
39044
  const localPreviewProps = useSelector$1(localPreviewSelector);
@@ -38924,6 +39055,8 @@ const LocalPreview = (props) => {
38924
39055
  devicesButtonProps.speakers.length === 0;
38925
39056
  const hasCameras = devicesButtonProps.cameras.length > 0;
38926
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;
38927
39060
  const theme = useTheme();
38928
39061
  const onRenderPlaceholder = React.useCallback(() => {
38929
39062
  return (React.createElement(react.Stack, { className: react.mergeStyles({
@@ -38937,8 +39070,8 @@ const LocalPreview = (props) => {
38937
39070
  React.createElement(react.Stack.Item, { align: "center" },
38938
39071
  React.createElement(CallCompositeIcon, { iconName: "LocalPreviewPlaceholder", className: react.mergeStyles(cameraOffLabelStyle, { color: theme.palette.neutralTertiary }) })),
38939
39072
  React.createElement(react.Stack.Item, { align: "center" },
38940
- React.createElement(react.Text, { className: react.mergeStyles(cameraOffLabelStyle, { color: theme.palette.neutralSecondary }) }, locale.strings.call.cameraTurnedOff))));
38941
- }, [theme, locale.strings.call.cameraTurnedOff]);
39073
+ React.createElement(react.Text, { className: react.mergeStyles(cameraOffLabelStyle, { color: theme.palette.neutralSecondary }) }, previewCameraString))));
39074
+ }, [theme, previewCameraString]);
38942
39075
  const devicesButtonStyles = props.mobileView
38943
39076
  ? {
38944
39077
  menuStyles: {
@@ -38952,7 +39085,7 @@ const LocalPreview = (props) => {
38952
39085
  React.createElement(MicrophoneButton, { "data-ui-id": "call-composite-local-device-settings-microphone-button", checked: isLocalMicrophoneEnabled, onToggleMicrophone: onToggleMic, disabled: !microphonePermissionGranted || !hasMicrophones, showLabel: true,
38953
39086
  // disable tooltip as it obscures list of devices on mobile
38954
39087
  strings: props.mobileView ? { tooltipOnContent: '', tooltipOffContent: '', tooltipDisabledContent: '' } : {}, styles: localPreviewButtonStyle(props.mobileView) }),
38955
- 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,
38956
39089
  // disable tooltip as it obscures list of devices on mobile
38957
39090
  strings: props.mobileView
38958
39091
  ? {
@@ -39103,7 +39236,14 @@ const CallReadinessModal = (props) => {
39103
39236
  main: { position: 'absolute', left: '50%', top: '50%', transform: 'translate(-50%, -50%)' }
39104
39237
  }, layerProps: { hostId: props.modalLayerHostId }, isOpen: isPermissionsModalDismissed, isBlocking: false, onDismiss: () => {
39105
39238
  setIsPermissionsModalDismissed(false);
39106
- }, overlay: { styles: { root: { background: 'rgba(0,0,0,0.4)' } } } }, modal()));
39239
+ }, overlay: { styles: { root: { background: 'rgba(0,0,0,0.4)' } } }, forceFocusInsideTrap: true, focusTrapZoneProps: {
39240
+ disabled: false,
39241
+ onKeyDown: (ev) => {
39242
+ if (ev.key === 'Escape') {
39243
+ setIsPermissionsModalDismissed(false);
39244
+ }
39245
+ }
39246
+ } }, modal()));
39107
39247
  }
39108
39248
  else {
39109
39249
  return React.createElement(React.Fragment, null);
@@ -39318,6 +39458,28 @@ const ConfigurationPage = (props) => {
39318
39458
  let disableStartCallButton = !microphonePermissionGranted || (microphones === null || microphones === void 0 ? void 0 : microphones.length) === 0;
39319
39459
  const role = useSelector$1(getRole);
39320
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]);
39321
39483
  let filteredLatestErrors = props.latestErrors;
39322
39484
  // TODO: move this logic to the error bar selector once role is plumbed from the headless SDK
39323
39485
  if (role !== 'Consumer') {
@@ -39431,10 +39593,10 @@ const ConfigurationPage = (props) => {
39431
39593
  title,
39432
39594
  callDescription),
39433
39595
  React.createElement(react.Stack, { horizontal: !mobileWithPreview, horizontalAlign: mobileWithPreview ? 'stretch' : 'center', verticalFill: mobileWithPreview, tokens: deviceConfigurationStackTokens },
39434
- localPreviewTrampoline(mobileWithPreview, !!(role === 'Consumer')),
39596
+ role !== 'Consumer' && (React.createElement(LocalPreview, { mobileView: mobileWithPreview, showDevicesButton: mobileView, onToggleCamera: toggleCamera, cameraLoading: cameraLoading && !isCameraOn })),
39435
39597
  React.createElement(react.Stack, { styles: mobileView ? undefined : configurationSectionStyle },
39436
39598
  !mobileWithPreview && (React.createElement(react.Stack, { className: mobileView ? undefined : selectionContainerStyle(theme, _isSafari(environmentInfo)) },
39437
- React.createElement(LocalDeviceSettings, Object.assign({}, options, localDeviceSettingsHandlers, { cameraPermissionGranted: cameraPermissionGrantedTrampoline(cameraPermissionGranted,
39599
+ React.createElement(LocalDeviceSettings, Object.assign({}, options, localDeviceSettingsHandlers, { onSelectCamera: switchCamera, cameraPermissionGranted: cameraPermissionGrantedTrampoline(cameraPermissionGranted,
39438
39600
  /* @conditional-compile-remove(call-readiness) */ videoState), microphonePermissionGranted: micPermissionGrantedTrampoline(microphonePermissionGranted,
39439
39601
  /* @conditional-compile-remove(call-readiness) */ audioState),
39440
39602
  /* @conditional-compile-remove(call-readiness) */
@@ -39446,12 +39608,6 @@ const ConfigurationPage = (props) => {
39446
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` },
39447
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` })))));
39448
39610
  };
39449
- const localPreviewTrampoline = (mobileView, doNotShow) => {
39450
- if (doNotShow) {
39451
- return undefined;
39452
- }
39453
- return React.createElement(LocalPreview, { mobileView: mobileView, showDevicesButton: mobileView });
39454
- };
39455
39611
  const cameraPermissionGrantedTrampoline = (cameraPermissionGranted, videoState) => {
39456
39612
  /* @conditional-compile-remove(call-readiness) */
39457
39613
  return videoState && videoState !== 'unsupported' ? videoState === 'granted' : cameraPermissionGranted;
@@ -45220,4 +45376,4 @@ exports.useTeamsCall = useTeamsCall;
45220
45376
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
45221
45377
  exports.useTeamsCallAgent = useTeamsCallAgent;
45222
45378
  exports.useTheme = useTheme;
45223
- //# sourceMappingURL=index-DpDZlDJC.js.map
45379
+ //# sourceMappingURL=index-DCYuyrVc.js.map