@azure/communication-react 1.18.0-alpha-202406180013 → 1.18.0-alpha-202406200013

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 (119) hide show
  1. package/dist/communication-react.d.ts +72 -28
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-2XnQpAq_.js → ChatMessageComponentAsRichTextEditBox-EyrzA3S-.js} +2 -2
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-2XnQpAq_.js.map → ChatMessageComponentAsRichTextEditBox-EyrzA3S-.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-D-f-hDmN.js → RichTextSendBoxWrapper-BTQ09DfU.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-D-f-hDmN.js.map → RichTextSendBoxWrapper-BTQ09DfU.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-DaC5GeKa.js → index-BxMyKmFB.js} +502 -106
  7. package/dist/dist-cjs/communication-react/index-BxMyKmFB.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  11. package/dist/dist-esm/calling-component-bindings/src/errorNotificationsSelector.d.ts +22 -0
  12. package/dist/dist-esm/calling-component-bindings/src/errorNotificationsSelector.js +146 -0
  13. package/dist/dist-esm/calling-component-bindings/src/errorNotificationsSelector.js.map +1 -0
  14. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +1 -0
  15. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +7 -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/index.d.ts +2 -0
  18. package/dist/dist-esm/calling-component-bindings/src/index.js +2 -0
  19. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  20. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.d.ts +1 -5
  21. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.js.map +1 -1
  22. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts +13 -0
  23. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  24. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +2 -2
  25. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js +2 -0
  26. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
  27. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.d.ts +2 -2
  28. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  29. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +1 -0
  30. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  31. package/dist/dist-esm/calling-stateful-client/src/index.d.ts +1 -1
  32. package/dist/dist-esm/calling-stateful-client/src/index.js.map +1 -1
  33. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +2 -1
  34. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  35. package/dist/dist-esm/react-components/src/components/ErrorBar.js +1 -1
  36. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  37. package/dist/dist-esm/react-components/src/components/InputBoxButton.d.ts +1 -0
  38. package/dist/dist-esm/react-components/src/components/InputBoxButton.js +2 -2
  39. package/dist/dist-esm/react-components/src/components/InputBoxButton.js.map +1 -1
  40. package/dist/dist-esm/react-components/src/components/Notifications.d.ts +23 -28
  41. package/dist/dist-esm/react-components/src/components/Notifications.js +17 -7
  42. package/dist/dist-esm/react-components/src/components/Notifications.js.map +1 -1
  43. package/dist/dist-esm/react-components/src/components/ParticipantList.js +3 -2
  44. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  45. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.d.ts +2 -2
  46. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js +1 -1
  47. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/PlaceholderPlugin.js.map +1 -1
  48. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +16 -29
  49. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
  50. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +1 -1
  51. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js.map +1 -1
  52. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +1 -1
  53. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  54. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +1 -1
  55. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
  56. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.d.ts +1 -0
  57. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +3 -3
  58. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  59. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +2 -0
  60. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  61. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +1 -1
  62. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  63. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +24 -13
  64. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
  65. package/dist/dist-esm/react-components/src/components/utils.d.ts +32 -1
  66. package/dist/dist-esm/react-components/src/components/utils.js +84 -0
  67. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  68. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +2 -23
  69. package/dist/dist-esm/react-components/src/theming/themes.js +13 -12
  70. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  71. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js +1 -1
  72. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js.map +1 -1
  73. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +24 -5
  74. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  75. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +20 -0
  76. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  77. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +4 -3
  78. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +8 -0
  79. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  80. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +4 -0
  81. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  82. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.d.ts +2 -2
  83. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js.map +1 -1
  84. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +4 -2
  85. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +33 -5
  86. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  87. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.d.ts +1 -1
  88. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +68 -4
  89. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  90. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.d.ts +3 -2
  91. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +1 -1
  92. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
  93. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +4 -0
  94. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  95. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +3 -2
  96. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +5 -3
  97. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  98. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +4 -2
  99. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  100. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +4 -2
  101. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  102. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +4 -2
  103. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  104. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +1 -0
  105. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +6 -0
  106. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  107. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +4 -0
  108. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  109. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +1 -0
  110. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +6 -0
  111. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  112. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.d.ts +1 -0
  113. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  114. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.d.ts +3 -2
  115. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +40 -2
  116. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  117. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +6 -1
  118. package/package.json +6 -6
  119. package/dist/dist-cjs/communication-react/index-DaC5GeKa.js.map +0 -1
@@ -175,7 +175,7 @@ function getDefaultExportFromCjs (x) {
175
175
  // Copyright (c) Microsoft Corporation.
176
176
  // Licensed under the MIT License.
177
177
  // GENERATED FILE. DO NOT EDIT MANUALLY.
178
- var telemetryVersion = '1.18.0-alpha-202406180013';
178
+ var telemetryVersion = '1.18.0-alpha-202406200013';
179
179
 
180
180
 
181
181
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -1124,6 +1124,10 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1124
1124
  }));
1125
1125
  }
1126
1126
  });
1127
+ /* @conditional-compile-remove(soft-mute) */
1128
+ const onMuteAllRemoteParticipants = () => __awaiter$R(void 0, void 0, void 0, function* () {
1129
+ call === null || call === void 0 ? void 0 : call.muteAllRemoteParticipants();
1130
+ });
1127
1131
  const canStartSpotlight = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Capabilities).capabilities.spotlightParticipant.isPresent;
1128
1132
  const canRemoveSpotlight = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Capabilities).capabilities.removeParticipantsSpotlight.isPresent;
1129
1133
  const onStartLocalSpotlight = canStartSpotlight
@@ -1192,7 +1196,9 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1192
1196
  onStartRemoteSpotlight,
1193
1197
  onStopRemoteSpotlight,
1194
1198
  /* @conditional-compile-remove(soft-mute) */
1195
- onMuteParticipant
1199
+ onMuteParticipant,
1200
+ /* @conditional-compile-remove(soft-mute) */
1201
+ onMuteAllRemoteParticipants
1196
1202
  };
1197
1203
  });
1198
1204
 
@@ -1300,6 +1306,145 @@ const createDefaultTeamsCallingHandlers = memoizeOne((callClient, callAgent, dev
1300
1306
  }) });
1301
1307
  });
1302
1308
 
1309
+ // Copyright (c) Microsoft Corporation.
1310
+ // Licensed under the MIT License.
1311
+ /* @conditional-compile-remove(notifications) */
1312
+ /* @conditional-compile-remove(notifications) */
1313
+ /**
1314
+ * Select the active errors from the state for the `Notification` component.
1315
+ *
1316
+ * Invariants:
1317
+ * - `ErrorType` is never repeated in the returned errors.
1318
+ * - Errors are returned in a fixed order by `ErrorType`.
1319
+ *
1320
+ * @beta
1321
+ */
1322
+ const errorNotificationsSelector = reselect.createSelector([getLatestErrors$1, getDiagnostics, getDeviceManager$1, getEnvironmentInfo], (latestErrors, diagnostics, deviceManager, environmentInfo) => {
1323
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
1324
+ // The order in which the errors are returned is significant: The `Notification` shows errors on the UI in that order.
1325
+ // There are several options for the ordering:
1326
+ // - Sorted by when the errors happened (latest first / oldest first).
1327
+ // - Stable sort by error type.
1328
+ //
1329
+ // We chose to stable sort by error type: We intend to show only a small number of errors on the UI and we do not
1330
+ // have timestamps for errors.
1331
+ const activeErrorMessages = [];
1332
+ const isSafari = () => {
1333
+ /* @conditional-compile-remove(calling-environment-info) */
1334
+ return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.browser) === 'safari';
1335
+ };
1336
+ const isMacOS = () => {
1337
+ /* @conditional-compile-remove(calling-environment-info) */
1338
+ return (environmentInfo === null || environmentInfo === void 0 ? void 0 : environmentInfo.environment.platform) === 'mac';
1339
+ };
1340
+ // Errors reported via diagnostics are more reliable than from API method failures, so process those first.
1341
+ if (((_a = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _a === void 0 ? void 0 : _a.value) === communicationCalling.DiagnosticQuality.Bad ||
1342
+ ((_b = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.network.latest.networkReceiveQuality) === null || _b === void 0 ? void 0 : _b.value) === communicationCalling.DiagnosticQuality.Poor) {
1343
+ activeErrorMessages.push({ type: 'callNetworkQualityLow' });
1344
+ }
1345
+ if (((_c = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noSpeakerDevicesEnumerated) === null || _c === void 0 ? void 0 : _c.value) === true) {
1346
+ activeErrorMessages.push({ type: 'callNoSpeakerFound' });
1347
+ }
1348
+ if (((_d = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.noMicrophoneDevicesEnumerated) === null || _d === void 0 ? void 0 : _d.value) === true) {
1349
+ activeErrorMessages.push({ type: 'callNoMicrophoneFound' });
1350
+ }
1351
+ if (((_e = deviceManager.deviceAccess) === null || _e === void 0 ? void 0 : _e.audio) === false && isSafari()) {
1352
+ activeErrorMessages.push({ type: 'callMicrophoneAccessDeniedSafari' });
1353
+ }
1354
+ if (((_f = deviceManager.deviceAccess) === null || _f === void 0 ? void 0 : _f.audio) === false && !isSafari()) {
1355
+ activeErrorMessages.push({ type: 'callMicrophoneAccessDenied' });
1356
+ }
1357
+ if (((_g = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphonePermissionDenied) === null || _g === void 0 ? void 0 : _g.value) === true && isMacOS()) {
1358
+ activeErrorMessages.push({ type: 'callMacOsMicrophoneAccessDenied' });
1359
+ }
1360
+ else if (((_h = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphonePermissionDenied) === null || _h === void 0 ? void 0 : _h.value) === true) {
1361
+ activeErrorMessages.push({ type: 'callMicrophoneAccessDenied' });
1362
+ }
1363
+ const microphoneMuteUnexpectedlyDiagnostic = (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneMuteUnexpectedly) || (diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.microphoneNotFunctioning);
1364
+ if (microphoneMuteUnexpectedlyDiagnostic) {
1365
+ if (microphoneMuteUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Bad) {
1366
+ // Inform the user that microphone stopped working and inform them to start microphone again
1367
+ activeErrorMessages.push({ type: 'callMicrophoneMutedBySystem' });
1368
+ }
1369
+ else if (microphoneMuteUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Good) {
1370
+ // Inform the user that microphone recovered
1371
+ activeErrorMessages.push({ type: 'callMicrophoneUnmutedBySystem' });
1372
+ }
1373
+ }
1374
+ const cameraStoppedUnexpectedlyDiagnostic = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraStoppedUnexpectedly;
1375
+ if (cameraStoppedUnexpectedlyDiagnostic) {
1376
+ if (cameraStoppedUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Bad) {
1377
+ // Inform the user that camera stopped working and inform them to start video again
1378
+ activeErrorMessages.push({ type: 'callVideoStoppedBySystem' });
1379
+ }
1380
+ else if (cameraStoppedUnexpectedlyDiagnostic.value === communicationCalling.DiagnosticQuality.Good) {
1381
+ // Inform the user that camera recovered
1382
+ activeErrorMessages.push({ type: 'callVideoRecoveredBySystem' });
1383
+ }
1384
+ }
1385
+ if (((_j = deviceManager.deviceAccess) === null || _j === void 0 ? void 0 : _j.video) === false && isSafari()) {
1386
+ activeErrorMessages.push({ type: 'callCameraAccessDeniedSafari' });
1387
+ }
1388
+ else if (((_k = deviceManager.deviceAccess) === null || _k === void 0 ? void 0 : _k.video) === false) {
1389
+ activeErrorMessages.push({ type: 'callCameraAccessDenied' });
1390
+ }
1391
+ else {
1392
+ if (((_l = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraFreeze) === null || _l === void 0 ? void 0 : _l.value) === true) {
1393
+ activeErrorMessages.push({ type: 'cameraFrozenForRemoteParticipants' });
1394
+ }
1395
+ }
1396
+ /**
1397
+ * show the Mac specific strings if the platform is detected as mac
1398
+ */
1399
+ if (((_m = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.cameraPermissionDenied) === null || _m === void 0 ? void 0 : _m.value) === true && isMacOS()) {
1400
+ activeErrorMessages.push({ type: 'callMacOsCameraAccessDenied' });
1401
+ }
1402
+ /**
1403
+ * This UFD only works on mac still so we should only see it fire on mac.
1404
+ */
1405
+ if (((_o = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.screenshareRecordingDisabled) === null || _o === void 0 ? void 0 : _o.value) === true && isMacOS()) {
1406
+ activeErrorMessages.push({ type: 'callMacOsScreenShareAccessDenied' });
1407
+ }
1408
+ else if (((_p = diagnostics === null || diagnostics === void 0 ? void 0 : diagnostics.media.latest.screenshareRecordingDisabled) === null || _p === void 0 ? void 0 : _p.value) === true) {
1409
+ activeErrorMessages.push({ type: 'startScreenShareGeneric' });
1410
+ }
1411
+ // Prefer to show errors with privacy implications.
1412
+ appendActiveErrorIfDefined$1(activeErrorMessages, latestErrors, 'Call.stopVideo', 'stopVideoGeneric');
1413
+ appendActiveErrorIfDefined$1(activeErrorMessages, latestErrors, 'Call.mute', 'muteGeneric');
1414
+ appendActiveErrorIfDefined$1(activeErrorMessages, latestErrors, 'Call.stopScreenSharing', 'stopScreenShareGeneric');
1415
+ if (((_q = latestErrors['Call.startVideo']) === null || _q === void 0 ? void 0 : _q.message) === 'Call.startVideo: Video operation failure SourceUnavailableError') {
1416
+ appendActiveErrorIfDefined$1(activeErrorMessages, latestErrors, 'Call.startVideo', 'callCameraAlreadyInUse');
1417
+ }
1418
+ else if (((_r = latestErrors['Call.startVideo']) === null || _r === void 0 ? void 0 : _r.message) === 'Call.startVideo: Video operation failure permissionDeniedError') {
1419
+ appendActiveErrorIfDefined$1(activeErrorMessages, latestErrors, 'Call.startVideo', 'callCameraAccessDenied');
1420
+ }
1421
+ else {
1422
+ appendActiveErrorIfDefined$1(activeErrorMessages, latestErrors, 'Call.startVideo', 'startVideoGeneric');
1423
+ }
1424
+ appendActiveErrorIfDefined$1(activeErrorMessages, latestErrors, 'Call.unmute', 'unmuteGeneric');
1425
+ appendActiveErrorIfDefined$1(activeErrorMessages, latestErrors, 'VideoEffectsFeature.startEffects', 'unableToStartVideoEffect');
1426
+ if (((_s = latestErrors['CallAgent.join']) === null || _s === void 0 ? void 0 : _s.message) === 'CallAgent.join: Invalid meeting link') {
1427
+ appendActiveErrorIfDefined$1(activeErrorMessages, latestErrors, 'CallAgent.join', 'failedToJoinCallInvalidMeetingLink');
1428
+ }
1429
+ else {
1430
+ appendActiveErrorIfDefined$1(activeErrorMessages, latestErrors, 'CallAgent.join', 'failedToJoinCallGeneric');
1431
+ }
1432
+ if ((_t = latestErrors['Call.feature']) === null || _t === void 0 ? void 0 : _t.message.match(/Call\.feature: startSpotlight failed\. \d+ is the max number of participants that can be Spotlighted/g)) {
1433
+ appendActiveErrorIfDefined$1(activeErrorMessages, latestErrors, 'Call.feature', 'startSpotlightWhileMaxParticipantsAreSpotlighted');
1434
+ }
1435
+ return { activeErrorMessages: activeErrorMessages };
1436
+ });
1437
+ /* @conditional-compile-remove(notifications) */
1438
+ const appendActiveErrorIfDefined$1 = (activeErrorMessages, latestErrors, target, activeErrorType) => {
1439
+ if (latestErrors[target] === undefined) {
1440
+ return;
1441
+ }
1442
+ activeErrorMessages.push({
1443
+ type: activeErrorType,
1444
+ timestamp: latestErrors[target].timestamp
1445
+ });
1446
+ };
1447
+
1303
1448
  // Copyright (c) Microsoft Corporation.
1304
1449
  // Licensed under the MIT License.
1305
1450
  /**
@@ -5306,6 +5451,7 @@ class ProxyTeamsCallAgent extends ProxyCallAgentCommon {
5306
5451
  /* @conditional-compile-remove(teams-identity-support) */
5307
5452
  if (_isTeamsCallAgent(agent)) {
5308
5453
  agent.on(...args);
5454
+ return;
5309
5455
  }
5310
5456
  throw new Error('Not reachable code, DeclarativeTeamsCallAgent.agentSubscribe must be called with an TeamsCallAgent.');
5311
5457
  }
@@ -5313,6 +5459,7 @@ class ProxyTeamsCallAgent extends ProxyCallAgentCommon {
5313
5459
  /* @conditional-compile-remove(teams-identity-support) */
5314
5460
  if (_isTeamsCallAgent(agent)) {
5315
5461
  agent.off(...args);
5462
+ return;
5316
5463
  }
5317
5464
  throw new Error('Not reachable code, DeclarativeTeamsCallAgent.agentUnsubscribe must be called with an TeamsCallAgent.');
5318
5465
  }
@@ -5750,7 +5897,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
5750
5897
  wordBreak: 'break-word'
5751
5898
  });
5752
5899
 
5753
- var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={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$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"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",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={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$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={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 and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",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"};var microphoneButton$k={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 microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={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$k={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$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={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 messageThread$k={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"};var errorBar$k={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.",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."};var notifications$k={unableToReachChatService:{title:"You are offline.",closeButtonAriaLabel:"Close"},accessDenied:{title:"Unable to access chat services",message:"Please check the user credentials provided",closeButtonAriaLabel:"Close"},userNotInChatThread:{title:"You are no longer in this chat thread.",closeButtonAriaLabel:"Close"},sendMessageNotInChatThread:{title:"Failed to send message",message:"You are no longer in this chat thread",closeButtonAriaLabel:"Close"},sendMessageGeneric:{title:"Failed to send message.",closeButtonAriaLabel:"Close"},callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",closeButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",closeButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",closeButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",closeButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",closeButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",closeButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",closeButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",closeButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",closeButtonAriaLabel:"Close"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",closeButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"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.",closeButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",closeButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",closeButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",closeButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",closeButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"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.",closeButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",closeButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",closeButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",closeButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",closeButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",closeButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",closeButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",closeButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",closeButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",closeButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",closeButtonAriaLabel:"Close"}};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s 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"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options"};var CameraAndMicrophoneSitePermissionsRequest$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={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$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={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$k={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$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var MeetingConferencePhoneInfo$k={meetingConferencePhoneInfoModalTitle:"Join call from your phone",meetingConferencePhoneInfoModalDialIn:"Dial number",meetingConferencePhoneInfoModalMeetingId:"Enter meeting ID",meetingConferencePhoneInfoModalWait:"Wait to be admitted by organizer",meetingConferencePhoneInfoModalNoPhoneAvailable:"No phone available",meetingConferencePhoneInfoModalTollFree:"{phoneNumber} (Toll-free) {country}, {city}",meetingConferencePhoneInfoModalTollFreeWithoutGeoData:"{phoneNumber} (Toll-free)",meetingConferencePhoneInfoModalToll:"{phoneNumber} (Toll) {country}, {city}",meetingConferencePhoneInfoModalTollWithoutGeoData:"{phoneNumber} (Toll)"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,notifications:notifications$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k,MeetingConferencePhoneInfo:MeetingConferencePhoneInfo$k};
5900
+ var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={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$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"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",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={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$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={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 and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",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"};var microphoneButton$k={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 microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={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$k={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$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={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 messageThread$k={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"};var errorBar$k={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.",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."};var notifications$k={callingNetworkFailure:{title:"Troubling connecting call",message:"You seem to be offline. Please check your network connection and try again.",closeButtonAriaLabel:"Close"},startVideoGeneric:{title:"Failed to start video.",closeButtonAriaLabel:"Close"},stopVideoGeneric:{title:"Failed to stop video.",closeButtonAriaLabel:"Close"},muteGeneric:{title:"Failed to mute microphone.",closeButtonAriaLabel:"Close"},unmuteGeneric:{title:"Failed to unmute microphone.",closeButtonAriaLabel:"Close"},speakingWhileMuted:{title:"You're muted.",closeButtonAriaLabel:"Close"},startScreenShareGeneric:{title:"There was an issue starting screen share.",closeButtonAriaLabel:"Close"},stopScreenShareGeneric:{title:"Failed to stop screen sharing.",closeButtonAriaLabel:"Close"},callNetworkQualityLow:{title:"Network quality is low.",closeButtonAriaLabel:"Close"},callNoSpeakerFound:{title:"No speakers or headphones found",message:"Connect an audio device to hear the call.",closeButtonAriaLabel:"Close"},callNoMicrophoneFound:{title:"No microphones found",message:"Connect an audio input device.",closeButtonAriaLabel:"Close"},callMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"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.",closeButtonAriaLabel:"Close"},callMicrophoneMutedBySystem:{title:"You are muted by your system.",closeButtonAriaLabel:"Close"},callMicrophoneUnmutedBySystem:{title:"Your microphone recovered and you were unmuted by your system.",closeButtonAriaLabel:"Close"},callMacOsMicrophoneAccessDenied:{title:"Unable to access microphone",message:"Grant microphone permission in your macOS privacy settings.",closeButtonAriaLabel:"Close"},callLocalVideoFreeze:{title:"Network bandwidth is poor",message:"Your video may appear paused for others on the call.",closeButtonAriaLabel:"Close"},callCameraAccessDenied:{title:"Unable to access camera",message:"Click the lock in the address bar to grant permission to this webpage.",closeButtonAriaLabel:"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.",closeButtonAriaLabel:"Close"},callCameraAlreadyInUse:{title:"Unable to access camera",message:"It may already be in use by another application.",closeButtonAriaLabel:"Close"},callVideoStoppedBySystem:{title:"Your video has been stopped by your system.",closeButtonAriaLabel:"Close"},callVideoRecoveredBySystem:{title:"Your video has resumed.",closeButtonAriaLabel:"Close"},callMacOsCameraAccessDenied:{title:"MacOS is blocking access to your camera",message:"Update your privacy settings to allow this browser to access your camera.",closeButtonAriaLabel:"Close"},callMacOsScreenShareAccessDenied:{title:"MacOS is blocking screen sharing",message:"Update your privacy settings to allow this browser to record your screen.",closeButtonAriaLabel:"Close"},failedToJoinCallGeneric:{title:"Failed to join call.",closeButtonAriaLabel:"Close"},failedToJoinCallInvalidMeetingLink:{title:"Unable to join Meeting. Invalid Link.",closeButtonAriaLabel:"Close"},cameraFrozenForRemoteParticipants:{title:"Users in the call are having issues seeing your video",message:"Please check your devices and network.",closeButtonAriaLabel:"Close"},unableToStartVideoEffect:{title:"Unable to apply video effect.",closeButtonAriaLabel:"Close"},startSpotlightWhileMaxParticipantsAreSpotlighted:{title:"Cannot start spotlight on participant(s)",message:"The maximum number of participants are already spotlighted.",closeButtonAriaLabel:"Close"}};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s 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"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold",moreOptionsButtonAriaLabel:"More Options"};var CameraAndMicrophoneSitePermissionsRequest$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$k={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$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={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$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={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$k={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$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var MeetingConferencePhoneInfo$k={meetingConferencePhoneInfoModalTitle:"Join call from your phone",meetingConferencePhoneInfoModalDialIn:"Dial number",meetingConferencePhoneInfoModalMeetingId:"Enter meeting ID",meetingConferencePhoneInfoModalWait:"Wait to be admitted by organizer",meetingConferencePhoneInfoModalNoPhoneAvailable:"No phone available",meetingConferencePhoneInfoModalTollFree:"{phoneNumber} (Toll-free) {country}, {city}",meetingConferencePhoneInfoModalTollFreeWithoutGeoData:"{phoneNumber} (Toll-free)",meetingConferencePhoneInfoModalToll:"{phoneNumber} (Toll) {country}, {city}",meetingConferencePhoneInfoModalTollWithoutGeoData:"{phoneNumber} (Toll)"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,notifications:notifications$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k,MeetingConferencePhoneInfo:MeetingConferencePhoneInfo$k};
5754
5901
 
5755
5902
  // Copyright (c) Microsoft Corporation.
5756
5903
  // Licensed under the MIT License.
@@ -6063,6 +6210,61 @@ const dropDismissalsForInactiveErrors = (activeErrorMessages, dismissedErrors) =
6063
6210
  }
6064
6211
  return dismissedErrors;
6065
6212
  };
6213
+ /**
6214
+ * @private
6215
+ * @param dismissedNotifications
6216
+ * @param toDismiss
6217
+ * @returns DismissedNotification[]
6218
+ * Always returns a new Array so that the state variable is updated, trigerring a render.
6219
+ */
6220
+ const dismissNotification = (dismissedNotifications, toDismiss) => {
6221
+ var _a;
6222
+ const now = new Date(Date.now());
6223
+ for (const notification of dismissedNotifications) {
6224
+ if (notification.type === toDismiss.type) {
6225
+ // Bump the timestamp for latest dismissal of this error to now.
6226
+ notification.dismissedAt = now;
6227
+ notification.activeSince = toDismiss.timestamp;
6228
+ return Array.from(dismissedNotifications);
6229
+ }
6230
+ }
6231
+ const toDismissTimestamp = (_a = toDismiss.timestamp) !== null && _a !== void 0 ? _a : now;
6232
+ // Record that this error was dismissed for the first time right now.
6233
+ return [
6234
+ ...dismissedNotifications,
6235
+ {
6236
+ type: toDismiss.type,
6237
+ // the error time could be sometimes later than the button click time, which cause the dismiss not working
6238
+ // so we set the dismiss time to the later one
6239
+ dismissedAt: now > toDismissTimestamp ? now : toDismissTimestamp,
6240
+ activeSince: toDismiss.timestamp
6241
+ }
6242
+ ];
6243
+ };
6244
+ /**
6245
+ * @private
6246
+ * @param activeNotifications
6247
+ * @param dismissedNotifications
6248
+ * @returns DismissedError[]
6249
+ * Returns a new Array if and only if contents change, to avoid re-rendering when nothing was dropped.
6250
+ */
6251
+ const dropDismissalsForInactiveNotifications = (activeNotifications, dismissedNotifications) => {
6252
+ const active = new Map();
6253
+ for (const message of activeNotifications) {
6254
+ active.set(message.type, message);
6255
+ }
6256
+ // For an error such that:
6257
+ // * It was previously active, and dismissed.
6258
+ // * It did not have a timestamp associated with it.
6259
+ // * It is no longer active.
6260
+ //
6261
+ // We remove it from dismissals. When it becomes active again next time, it will be shown again on the UI.
6262
+ const shouldDeleteDismissal = (dismissed) => dismissed.activeSince === undefined && active.get(dismissed.type) === undefined;
6263
+ if (dismissedNotifications.some((dismissed) => shouldDeleteDismissal(dismissed))) {
6264
+ return dismissedNotifications.filter((dismissed) => !shouldDeleteDismissal(dismissed));
6265
+ }
6266
+ return dismissedNotifications;
6267
+ };
6066
6268
  /**
6067
6269
  * @private
6068
6270
  * @param activeErrorMessages
@@ -6092,6 +6294,35 @@ const errorsToShow = (activeErrorMessages, dismissedErrors, mountTimestamp) => {
6092
6294
  return error.timestamp > dismissal.dismissedAt;
6093
6295
  });
6094
6296
  };
6297
+ /**
6298
+ * @private
6299
+ * @param activeNotifications
6300
+ * @param dismissedNotifications
6301
+ * @returns ActiveNotification[]
6302
+ */
6303
+ const notificationsToShow = (activeNotifications, dismissedNotifications, mountTimestamp) => {
6304
+ const dismissed = new Map();
6305
+ for (const notification of dismissedNotifications) {
6306
+ dismissed.set(notification.type, notification);
6307
+ }
6308
+ return activeNotifications.filter((notification) => {
6309
+ if (mountTimestamp && notification.timestamp && mountTimestamp > notification.timestamp) {
6310
+ // Notification has a timestamp and it is older than when the component was mounted.
6311
+ return false;
6312
+ }
6313
+ const dismissal = dismissed.get(notification.type);
6314
+ if (!dismissal) {
6315
+ // This error was never dismissed.
6316
+ return true;
6317
+ }
6318
+ if (!notification.timestamp) {
6319
+ // No timestamp associated with the error. In this case, the existence of a dismissal is enough to suppress the error.
6320
+ return false;
6321
+ }
6322
+ // Error has an associated timestamp, so compare with last dismissal.
6323
+ return notification.timestamp > dismissal.dismissedAt;
6324
+ });
6325
+ };
6095
6326
  /**
6096
6327
  * @private
6097
6328
  * @param errorType
@@ -6258,7 +6489,7 @@ const ErrorBar = (props) => {
6258
6489
  setDismissedErrors(dropDismissalsForInactiveErrors(props.activeErrorMessages, dismissedErrors));
6259
6490
  }, [props.activeErrorMessages, dismissedErrors, trackDismissedErrorsInternally]);
6260
6491
  const toShow = errorsToShow(props.activeErrorMessages, dismissedErrors, props.ignorePremountErrors ? mountTimestamp.current : undefined);
6261
- return (React.createElement(react.Stack, { "data-ui-id": "error-bar-stack" }, toShow.map((error) => (React.createElement(react.MessageBar, Object.assign({}, props, { styles: {
6492
+ return (React.createElement(react.Stack, { "data-ui-id": "notifications-stack" }, toShow.map((error) => (React.createElement(react.MessageBar, Object.assign({}, props, { styles: {
6262
6493
  innerText: {
6263
6494
  alignSelf: 'center'
6264
6495
  },
@@ -6617,12 +6848,7 @@ const lightTheme = {
6617
6848
  errorText: '#a80000'
6618
6849
  }
6619
6850
  };
6620
- /**
6621
- * Preset dark theme for components exported from this library.
6622
- *
6623
- * @public
6624
- */
6625
- const darkTheme = {
6851
+ const partialDarkTheme = {
6626
6852
  palette: {
6627
6853
  themePrimary: '#2899f5',
6628
6854
  themeLighterAlt: '#02060a',
@@ -6648,18 +6874,23 @@ const darkTheme = {
6648
6874
  white: '#252423',
6649
6875
  whiteTranslucent40: 'rgba(0, 0, 0, 0.4)'
6650
6876
  },
6651
- callingPalette: {
6877
+ semanticColors: {
6878
+ errorText: '#f1707b'
6879
+ }
6880
+ };
6881
+ /**
6882
+ * Preset dark theme for components exported from this library.
6883
+ *
6884
+ * @public
6885
+ */
6886
+ const darkTheme = Object.assign(Object.assign({}, react.createTheme(Object.assign(Object.assign({}, partialDarkTheme), { isInverted: true }))), { callingPalette: {
6652
6887
  callRed: '#c4314b',
6653
6888
  callRedDark: '#a42e43',
6654
6889
  callRedDarker: '#8b2c3d',
6655
6890
  iconWhite: '#ffffff',
6656
6891
  raiseHandGold: '#eaa300',
6657
6892
  videoTileLabelBackgroundLight: 'rgba(37,36,35,0.8)'
6658
- },
6659
- semanticColors: {
6660
- errorText: '#f1707b'
6661
- }
6662
- };
6893
+ } });
6663
6894
  /* @conditional-compile-remove(image-overlay-theme) */
6664
6895
  /**
6665
6896
  * Preset dark theme for the ImageOverlay component.
@@ -8826,7 +9057,7 @@ const iconWrapperStyle$1 = react.mergeStyles({
8826
9057
  * @private
8827
9058
  */
8828
9059
  const InputBoxButton = (props) => {
8829
- const { onRenderIcon, onClick, ariaLabel, className, id, tooltipContent, 'data-testId': dataTestId, ariaDisabled = false } = props;
9060
+ const { onRenderIcon, onClick, ariaLabel, className, id, tooltipContent, 'data-testId': dataTestId, ariaDisabled = false, ariaExpanded = false } = props;
8830
9061
  const [isHover, setIsHover] = React.useState(false);
8831
9062
  const mergedButtonStyle = react.mergeStyles(inputBoxButtonStyle, className);
8832
9063
  const theme = react.useTheme();
@@ -8845,7 +9076,7 @@ const InputBoxButton = (props) => {
8845
9076
  setIsHover(false);
8846
9077
  },
8847
9078
  // VoiceOver fix: Avoid icon from stealing focus when IconButton is double-tapped to send message by wrapping with Stack with pointerEvents style to none
8848
- onRenderIcon: () => React.createElement(react.Stack, { className: iconWrapperStyle$1 }, onRenderIcon(isHover)), "data-testid": dataTestId }))));
9079
+ onRenderIcon: () => React.createElement(react.Stack, { className: iconWrapperStyle$1 }, onRenderIcon(isHover)), "data-testid": dataTestId, "aria-expanded": ariaExpanded }))));
8849
9080
  };
8850
9081
 
8851
9082
  // Copyright (c) Microsoft Corporation.
@@ -9583,7 +9814,7 @@ const mapBorderRadiusTokens = (effects) => {
9583
9814
  */
9584
9815
  const createV9Theme = (themeV8, baseThemeV9) => {
9585
9816
  const baseTheme = baseThemeV9 !== null && baseThemeV9 !== void 0 ? baseThemeV9 : reactComponents.webLightTheme;
9586
- return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, baseTheme), mapAliasColors(themeV8.palette, themeV8.isInverted)), mapShadowTokens(themeV8.effects)), mapBorderRadiusTokens(themeV8.effects)), { colorBrandBackground2: themeV8.palette.themeLight, colorBrandBackground2Hover: themeV8.palette.themeLight, colorBrandBackground2Pressed: themeV8.palette.themeLight, colorStatusWarningBackground3: '#D83B01', errorText: themeV8.semanticColors.errorText, colorNeutralStroke1Selected: themeV8.palette.neutralQuaternary, colorNeutralForeground2: themeV8.palette.neutralSecondary, colorBrandForegroundLinkHover: themeV8.palette.themeDarker, colorNeutralBackground1Selected: themeV8.palette.neutralQuaternaryAlt, colorNeutralStroke2: themeV8.palette.neutralTertiaryAlt,
9817
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, baseTheme), mapAliasColors(themeV8.palette, themeV8.isInverted)), mapShadowTokens(themeV8.effects)), mapBorderRadiusTokens(themeV8.effects)), { colorBrandBackground2: themeV8.palette.themeLight, colorBrandBackground2Hover: themeV8.palette.themeLight, colorBrandBackground2Pressed: themeV8.palette.themeLight, colorStatusWarningBackground3: '#D83B01', errorText: themeV8.semanticColors.errorText, colorNeutralStroke1Selected: themeV8.palette.neutralQuaternary, colorNeutralForeground2: themeV8.palette.neutralSecondary, colorBrandForegroundLinkHover: themeV8.palette.themeDarker, colorNeutralBackground1Selected: themeV8.palette.neutralQuaternaryAlt,
9587
9818
  // Fix for an issue with black borders for iOS that are added with 'after' selector
9588
9819
  colorStrokeFocus2: 'transparent' });
9589
9820
  };
@@ -10071,10 +10302,10 @@ const richTextEditorWrapperStyle = (theme, addTopOffset) => {
10071
10302
  tableLayout: 'auto',
10072
10303
  '& tr': {
10073
10304
  background: 'transparent',
10074
- border: `1px solid ${theme.palette.neutralTertiaryAlt}`,
10305
+ border: `1px solid ${theme.palette.neutralSecondary}`,
10075
10306
  '& td': {
10076
10307
  background: 'transparent',
10077
- border: `1px solid ${theme.palette.neutralTertiaryAlt}`,
10308
+ border: `1px solid ${theme.palette.neutralSecondary}`,
10078
10309
  wordBreak: 'normal',
10079
10310
  padding: '0.125rem 0.25rem',
10080
10311
  verticalAlign: 'top'
@@ -10144,16 +10375,26 @@ const ribbonOverflowButtonRootStyles = (theme) => {
10144
10375
  }
10145
10376
  };
10146
10377
  };
10147
- const ribbonButtonRootStyles = (theme) => {
10378
+ const ribbonButtonRootStyles = (iconColor, hoverIconColor) => {
10148
10379
  return {
10149
10380
  backgroundColor: 'transparent',
10150
10381
  selectors: {
10151
- // Icon's color doesn't work here because of the specificity
10382
+ // media query applies only if the device allows real hover interactions
10383
+ // and hover styles are not applied on touch- only devices where the hover state cannot be accurately detected
10384
+ '@media (hover: hover)': {
10385
+ ':hover .ms-Button-icon': {
10386
+ color: hoverIconColor
10387
+ },
10388
+ ':hover .ms-Button-menuIcon': {
10389
+ color: hoverIconColor
10390
+ }
10391
+ },
10392
+ // the classes needs here to apply to styles for icons because of the specificity
10152
10393
  '.ms-Button-icon': {
10153
- color: theme.palette.themePrimary
10394
+ color: iconColor
10154
10395
  },
10155
10396
  '.ms-Button-menuIcon': {
10156
- color: theme.palette.themePrimary
10397
+ color: iconColor
10157
10398
  }
10158
10399
  }
10159
10400
  };
@@ -10166,13 +10407,14 @@ const toolbarButtonStyle = (theme) => {
10166
10407
  icon: { color: theme.palette.neutralPrimary, height: 'auto' },
10167
10408
  menuIcon: { color: theme.palette.neutralPrimary, height: 'auto' },
10168
10409
  root: { minWidth: 'auto', backgroundColor: 'transparent' },
10169
- rootChecked: ribbonButtonRootStyles(theme),
10170
- rootHovered: ribbonButtonRootStyles(theme),
10171
- rootCheckedHovered: ribbonButtonRootStyles(theme),
10172
- rootCheckedPressed: ribbonButtonRootStyles(theme),
10173
- rootPressed: ribbonButtonRootStyles(theme),
10174
- rootExpanded: ribbonButtonRootStyles(theme),
10175
- rootExpandedHovered: ribbonButtonRootStyles(theme)
10410
+ rootChecked: ribbonButtonRootStyles(theme.palette.themePrimary, theme.palette.themePrimary),
10411
+ // there is a bug for Android where the press action is considered hover sometimes
10412
+ rootHovered: ribbonButtonRootStyles(theme.palette.neutralPrimary, theme.palette.themePrimary),
10413
+ rootCheckedHovered: ribbonButtonRootStyles(theme.palette.themePrimary, theme.palette.themePrimary),
10414
+ rootCheckedPressed: ribbonButtonRootStyles(theme.palette.themePrimary, theme.palette.themePrimary),
10415
+ rootPressed: ribbonButtonRootStyles(theme.palette.themePrimary, theme.palette.themePrimary),
10416
+ rootExpanded: ribbonButtonRootStyles(theme.palette.themePrimary, theme.palette.themePrimary),
10417
+ rootExpandedHovered: ribbonButtonRootStyles(theme.palette.themePrimary, theme.palette.themePrimary)
10176
10418
  };
10177
10419
  };
10178
10420
  const rootRibbonTableButtonStyle = (theme) => {
@@ -11158,7 +11400,6 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11158
11400
  const editorDiv = React.useRef(null);
11159
11401
  const theme = useTheme();
11160
11402
  const [contextMenuProps, setContextMenuProps] = React.useState(null);
11161
- const tableCellSelectionLightThemeBackgroundColor = React.useRef(undefined);
11162
11403
  React.useImperativeHandle(ref, () => {
11163
11404
  return {
11164
11405
  focus() {
@@ -11199,19 +11440,15 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11199
11440
  var _a;
11200
11441
  (_a = editor.current) === null || _a === void 0 ? void 0 : _a.setDarkModeState(isDarkThemedValue);
11201
11442
  }, [isDarkThemedValue]);
11202
- // remember light color to correctly set it in the dark theme
11203
- React.useEffect(() => {
11204
- var _a, _b, _c;
11205
- // focus to update selection color for table, otherwise the existing selection color for table won't be updated
11206
- (_a = editor.current) === null || _a === void 0 ? void 0 : _a.focus();
11207
- if (!isDarkThemedValue) {
11208
- tableCellSelectionLightThemeBackgroundColor.current =
11209
- (_c = (_b = lightTheme.palette) === null || _b === void 0 ? void 0 : _b.neutralLight) !== null && _c !== void 0 ? _c : theme.palette.neutralLight;
11210
- }
11211
- }, [theme.palette.neutralLight, isDarkThemedValue]);
11212
11443
  const placeholderPlugin = React.useMemo(() => {
11213
- return new PlaceholderPlugin('');
11214
- }, []);
11444
+ var _a;
11445
+ const textColor = (_a = theme.palette) === null || _a === void 0 ? void 0 : _a.neutralSecondary;
11446
+ return new PlaceholderPlugin('', textColor
11447
+ ? {
11448
+ textColor: textColor
11449
+ }
11450
+ : undefined);
11451
+ }, [theme]);
11215
11452
  React.useEffect(() => {
11216
11453
  if (placeholderText !== undefined) {
11217
11454
  placeholderPlugin.updatePlaceholder(placeholderText);
@@ -11260,13 +11497,6 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11260
11497
  const onContextMenuDismiss = React.useCallback(() => {
11261
11498
  setContextMenuProps(null);
11262
11499
  }, []);
11263
- const getDarkColor = React.useCallback((lightColor, _baseLValue, colorType) => {
11264
- var _a, _b;
11265
- if (lightColor === tableCellSelectionLightThemeBackgroundColor.current && colorType === 'background') {
11266
- return (_b = (_a = darkTheme.palette) === null || _a === void 0 ? void 0 : _a.neutralLight) !== null && _b !== void 0 ? _b : theme.palette.neutralLight;
11267
- }
11268
- return lightColor;
11269
- }, [theme.palette.neutralLight]);
11270
11500
  const copyPastePlugin = React.useMemo(() => {
11271
11501
  return new CopyPastePlugin();
11272
11502
  }, []);
@@ -11306,7 +11536,7 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11306
11536
  tableContextMenuPlugin
11307
11537
  ]);
11308
11538
  React.useEffect(() => {
11309
- var _a, _b;
11539
+ var _a;
11310
11540
  const initialModel = createEditorInitialModel(initialContent, contentModel);
11311
11541
  if (editorDiv.current) {
11312
11542
  editor.current = new roosterjsContentModelCore.Editor(editorDiv.current, {
@@ -11315,7 +11545,7 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11315
11545
  doNotAdjustEditorColor: true,
11316
11546
  // TODO: confirm the color during inline images implementation
11317
11547
  imageSelectionBorderColor: 'blue',
11318
- tableCellSelectionBackgroundColor: ((_a = lightTheme.palette) === null || _a === void 0 ? void 0 : _a.neutralLight) && theme.palette.neutralLight,
11548
+ tableCellSelectionBackgroundColor: theme.palette.neutralLight,
11319
11549
  plugins: plugins,
11320
11550
  initialModel: initialModel,
11321
11551
  defaultModelToDomOptions: {
@@ -11324,12 +11554,11 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11324
11554
  border: borderApplier,
11325
11555
  dataset: dataSetApplier
11326
11556
  }
11327
- },
11328
- getDarkColor: getDarkColor
11557
+ }
11329
11558
  });
11330
11559
  }
11331
11560
  if (autoFocus === 'sendBoxTextField') {
11332
- (_b = editor.current) === null || _b === void 0 ? void 0 : _b.focus();
11561
+ (_a = editor.current) === null || _a === void 0 ? void 0 : _a.focus();
11333
11562
  }
11334
11563
  return () => {
11335
11564
  if (editor.current) {
@@ -11339,11 +11568,11 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11339
11568
  };
11340
11569
  // don't update the editor on deps update as everything is handled in separate hooks or plugins
11341
11570
  // eslint-disable-next-line react-hooks/exhaustive-deps
11342
- }, []);
11571
+ }, [theme, plugins]);
11343
11572
  return (React.createElement("div", { "data-testid": 'rich-text-editor-wrapper' },
11344
11573
  showRichTextEditorFormatting && toolbar,
11345
11574
  React.createElement("div", { className: richTextEditorWrapperStyle(theme, !showRichTextEditorFormatting) },
11346
- React.createElement("div", { id: "richTextSendBox", ref: editorDiv, tabIndex: 0, role: "textbox", "aria-multiline": "true", "data-testid": 'rooster-rich-text-editor', className: richTextEditorStyle(props.styles) })),
11575
+ React.createElement("div", { id: "richTextSendBox", ref: editorDiv, tabIndex: 0, role: "textbox", "aria-multiline": "true", "data-testid": 'rooster-rich-text-editor', className: richTextEditorStyle(props.styles), "aria-label": placeholderText })),
11347
11576
  contextMenuProps && React.createElement(react.ContextualMenu, Object.assign({}, contextMenuProps, { calloutProps: { isBeakVisible: false } }))));
11348
11577
  });
11349
11578
  const createEditorInitialModel = (initialContent, contentModel) => {
@@ -11438,7 +11667,7 @@ const RichTextInputBoxComponent = (props) => {
11438
11667
  const isRichTextEditorToolbarShown = showRichTextEditorFormatting === true;
11439
11668
  setShowRichTextEditorFormatting(!isRichTextEditorToolbarShown);
11440
11669
  e.stopPropagation(); // Prevents the click from bubbling up and triggering a focus event on the chat.
11441
- }, ariaLabel: strings.richTextFormatButtonTooltip, tooltipContent: strings.richTextFormatButtonTooltip, className: richTextActionButtonsStyle, "data-testId": 'rich-text-input-box-format-button' }),
11670
+ }, ariaLabel: strings.richTextFormatButtonTooltip, tooltipContent: strings.richTextFormatButtonTooltip, className: richTextActionButtonsStyle, "data-testId": 'rich-text-input-box-format-button', ariaExpanded: showRichTextEditorFormatting }),
11442
11671
  React.createElement(react.Icon, { iconName: "RichTextDividerIcon", className: richTextActionButtonsDividerStyle(theme) }),
11443
11672
  actionComponents)));
11444
11673
  }, [
@@ -12053,7 +12282,7 @@ const useChatMessageCommonStyles = reactComponents.makeStyles({
12053
12282
  borderCollapse: 'collapse',
12054
12283
  tableLayout: 'auto',
12055
12284
  width: '100%',
12056
- '& tr': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStroke2}`)), { '& td': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStroke2}`)), { wordBreak: 'normal', paddingTop: '0px', paddingRight: '5px' }) })
12285
+ '& tr': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStrokeAccessible}`)), { '& td': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStrokeAccessible}`)), { wordBreak: 'normal', paddingTop: '0px', paddingRight: '5px' }) })
12057
12286
  }
12058
12287
  },
12059
12288
  failed: {
@@ -13699,7 +13928,7 @@ class _ErrorBoundary extends React.Component {
13699
13928
  // Copyright (c) Microsoft Corporation.
13700
13929
  // Licensed under the MIT License.
13701
13930
  /* @conditional-compile-remove(rich-text-editor) */
13702
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-2XnQpAq_.js'); }));
13931
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-EyrzA3S-.js'); }));
13703
13932
  /**
13704
13933
  * @private
13705
13934
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -13707,7 +13936,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
13707
13936
  *
13708
13937
  * @conditional-compile-remove(rich-text-editor)
13709
13938
  */
13710
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-2XnQpAq_.js'); });
13939
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-EyrzA3S-.js'); });
13711
13940
  /**
13712
13941
  * @private
13713
13942
  */
@@ -15243,7 +15472,8 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
15243
15472
  /* @conditional-compile-remove(hide-attendee-name) */
15244
15473
  displayName = formatDisplayName();
15245
15474
  const callingPalette = theme.callingPalette;
15246
- const onRenderIcon = (callingParticipant === null || callingParticipant === void 0 ? void 0 : callingParticipant.isScreenSharing) || (callingParticipant === null || callingParticipant === void 0 ? void 0 : callingParticipant.isMuted) || (callingParticipant === null || callingParticipant === void 0 ? void 0 : callingParticipant.raisedHand)
15475
+ const isPinned = pinnedParticipants && (pinnedParticipants === null || pinnedParticipants === void 0 ? void 0 : pinnedParticipants.includes(participant.userId));
15476
+ const onRenderIcon = (callingParticipant === null || callingParticipant === void 0 ? void 0 : callingParticipant.isScreenSharing) || (callingParticipant === null || callingParticipant === void 0 ? void 0 : callingParticipant.isMuted) || (callingParticipant === null || callingParticipant === void 0 ? void 0 : callingParticipant.raisedHand) || isPinned
15247
15477
  ? () => {
15248
15478
  var _a;
15249
15479
  return (React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: '0.5rem' } },
@@ -15260,7 +15490,7 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
15260
15490
  callingParticipant.isScreenSharing && (React.createElement(react.Icon, { iconName: "ParticipantItemScreenShareStart", className: iconStyles$2, ariaLabel: strings.sharingIconLabel })),
15261
15491
  callingParticipant.isMuted && (React.createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })),
15262
15492
  callingParticipant.spotlight && React.createElement(react.Icon, { iconName: "ParticipantItemSpotlighted", className: iconStyles$2 }),
15263
- pinnedParticipants && (pinnedParticipants === null || pinnedParticipants === void 0 ? void 0 : pinnedParticipants.includes(participant.userId)) && (React.createElement(react.Icon, { iconName: "ParticipantItemPinned", className: iconStyles$2 }))));
15493
+ isPinned && React.createElement(react.Icon, { iconName: "ParticipantItemPinned", className: iconStyles$2 })));
15264
15494
  }
15265
15495
  : () => null;
15266
15496
  const onRenderAvatarWithRaiseHand = (callingParticipant === null || callingParticipant === void 0 ? void 0 : callingParticipant.raisedHand) && onRenderAvatar
@@ -15999,17 +16229,17 @@ const useVideoTileContextualMenuProps = (props) => {
15999
16229
  }
16000
16230
  }
16001
16231
  /* @conditional-compile-remove(soft-mute) */
16002
- if (onMuteParticipant) {
16232
+ if (onMuteParticipant && (strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel)) {
16003
16233
  items.push({
16004
16234
  key: 'mute',
16005
- text: 'Mute',
16235
+ text: strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel,
16006
16236
  iconProps: {
16007
16237
  iconName: 'ContextualMenuMicMutedIcon',
16008
16238
  styles: { root: { lineHeight: 0 } }
16009
16239
  },
16010
16240
  onClick: () => onMuteParticipant(participant.userId),
16011
16241
  'data-ui-id': 'video-tile-mute-participant',
16012
- ariaLabel: 'Mute',
16242
+ ariaLabel: strings === null || strings === void 0 ? void 0 : strings.muteParticipantMenuItemLabel,
16013
16243
  disabled: participant.isMuted
16014
16244
  });
16015
16245
  }
@@ -22453,7 +22683,7 @@ const _TroubleshootingGuideErrorBar = (props) => {
22453
22683
  // Without this behaviour, this `useEffect` block would cause a render loop.
22454
22684
  React.useEffect(() => setDismissedErrors(dropDismissalsForInactiveErrors(props.activeErrorMessages, dismissedErrors)), [props.activeErrorMessages, dismissedErrors]);
22455
22685
  const toShow = errorsToShow(props.activeErrorMessages, dismissedErrors);
22456
- return (React.createElement(react.Stack, { "data-ui-id": "error-bar-stack" }, toShow.map((error) => {
22686
+ return (React.createElement(react.Stack, { "data-ui-id": "notifications-stack" }, toShow.map((error) => {
22457
22687
  const devicePermissionErrorBar = (React.createElement("div", null,
22458
22688
  strings[error.type],
22459
22689
  ' ',
@@ -22622,7 +22852,7 @@ const _VideoBackgroundEffectsPicker = (props) => {
22622
22852
  React.createElement(react.Label, { className: react.mergeStyles((_c = props.styles) === null || _c === void 0 ? void 0 : _c.label) }, props.label),
22623
22853
  optionsByRow.map((options, rowIndex) => {
22624
22854
  var _a;
22625
- return (React.createElement(react.Stack, { className: react.mergeStyles((_a = props.styles) === null || _a === void 0 ? void 0 : _a.rowRoot), wrap: props.itemsPerRow === 'wrap', horizontal: true, key: rowIndex, tokens: { childrenGap: '0.5rem' }, "data-ui-id": "video-effects-picker-row" },
22855
+ return (React.createElement(react.Stack, { className: react.mergeStyles((_a = props.styles) === null || _a === void 0 ? void 0 : _a.rowRoot), wrap: props.itemsPerRow === 'wrap', horizontal: true, key: rowIndex, tokens: { childrenGap: '0.5rem' }, "data-ui-id": "video-effects-picker-row", horizontalAlign: "center" },
22626
22856
  options.map((option, i) => {
22627
22857
  if (i === 0 && rowIndex === 0) {
22628
22858
  return (React.createElement(_VideoEffectsItem, Object.assign({}, option, { itemKey: option.itemKey, key: option.itemKey, componentRef: props.componentRef })));
@@ -23386,18 +23616,28 @@ const Notifications = (props) => {
23386
23616
  const localeStrings = useLocale$1().strings.notifications;
23387
23617
  const strings = (_a = props.strings) !== null && _a !== void 0 ? _a : localeStrings;
23388
23618
  const maxNotificationsToShow = (_b = props.maxNotificationsToShow) !== null && _b !== void 0 ? _b : 2;
23389
- const [activeNotifications, setActiveNotifications] = React.useState(props.activeNotifications);
23619
+ const trackDismissedNotificationsInternally = !props.onDismissNotification;
23620
+ // Timestamp for when this comopnent is first mounted.
23621
+ // Never updated through the lifecycle of this component.
23622
+ const mountTimestamp = React.useRef(new Date(Date.now()));
23623
+ const [dismissedNotifications, setDismissedNotifications] = React.useState([]);
23624
+ // dropDismissalsForInactiveNotifications only returns a new object if `dismissedErrors` actually changes.
23625
+ // Without this behaviour, this `useEffect` block would cause a render loop.
23390
23626
  React.useEffect(() => {
23391
- setActiveNotifications(props.activeNotifications);
23392
- }, [props.activeNotifications]);
23627
+ trackDismissedNotificationsInternally &&
23628
+ setDismissedNotifications(dropDismissalsForInactiveNotifications(props.activeNotifications, dismissedNotifications));
23629
+ }, [props.activeNotifications, dismissedNotifications, trackDismissedNotificationsInternally]);
23630
+ const activeNotifications = notificationsToShow(props.activeNotifications, dismissedNotifications, props.ignorePremountNotifications ? mountTimestamp.current : undefined);
23393
23631
  return (React.createElement(react.Stack, { "data-ui-id": "notifications-stack", style: {
23394
23632
  width: 'fit-content'
23395
23633
  } }, activeNotifications.map((notification, index) => {
23396
23634
  if (index < maxNotificationsToShow) {
23397
23635
  return (React.createElement("div", { key: index, style: { marginBottom: `${index === maxNotificationsToShow - 1 ? 0 : '0.25rem'}` } },
23398
23636
  React.createElement(NotificationBar, { notificationBarStrings: strings ? strings[notification.type] : undefined, notificationBarIconProps: 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: () => {
23399
- activeNotifications.splice(index, 1);
23400
- setActiveNotifications([...activeNotifications]);
23637
+ var _a;
23638
+ trackDismissedNotificationsInternally
23639
+ ? setDismissedNotifications(dismissNotification(dismissedNotifications, notification))
23640
+ : (_a = props.onDismissNotification) === null || _a === void 0 ? void 0 : _a.call(props, notification);
23401
23641
  notification.onDismiss && notification.onDismiss();
23402
23642
  }, showStackedEffect: index === maxNotificationsToShow - 1 && activeNotifications.length > maxNotificationsToShow, autoDismiss: notification.autoDismiss })));
23403
23643
  }
@@ -24402,7 +24642,8 @@ const createDefaultChatHandlers = memoizeOne((chatClient, chatThreadClient) => {
24402
24642
  options.attachments[0] &&
24403
24643
  !options.attachments[0].attachmentType) {
24404
24644
  const chatSDKOptions = {
24405
- metadata: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.metadata), { fileSharingMetadata: JSON.stringify(options === null || options === void 0 ? void 0 : options.attachments) })
24645
+ metadata: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.metadata), { fileSharingMetadata: JSON.stringify(options === null || options === void 0 ? void 0 : options.attachments) }),
24646
+ type: options.type
24406
24647
  };
24407
24648
  yield chatThreadClient.sendMessage(sendMessageRequest, chatSDKOptions);
24408
24649
  return;
@@ -27138,7 +27379,7 @@ const isChatError = (e) => {
27138
27379
  return 'target' in e && e['target'] !== undefined && 'innerError' in e && e['innerError'] !== undefined;
27139
27380
  };
27140
27381
 
27141
- var call$k={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",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",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"},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",unpinParticipantMenuItemAriaLabel:"Unpin"};var chat$k={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment"};var callWithChat$k={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"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
27382
+ var call$k={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",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",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"},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",unpinParticipantMenuItemAriaLabel:"Unpin",muteAllMenuLabel:"Mute all",muteAllDialogTitle:"Mute everyone?",muteAllDialogContent:"This will mute everyone in the meeting but you.",muteAllConfirmButtonLabel:"Mute all",muteAllCancelButtonLabel:"Cancel"};var chat$k={chatListHeader:"In this chat",uploadAttachment:"Upload Attachment"};var callWithChat$k={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"};var en_US = {call:call$k,chat:chat$k,callWithChat:callWithChat$k};
27142
27383
 
27143
27384
  // Copyright (c) Microsoft Corporation.
27144
27385
  // Licensed under the MIT License.
@@ -28080,7 +28321,7 @@ const AttachmentDownloadErrorBar = (props) => {
28080
28321
  /**
28081
28322
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
28082
28323
  */
28083
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-D-f-hDmN.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
28324
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BTQ09DfU.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
28084
28325
  /**
28085
28326
  * @private
28086
28327
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -28088,7 +28329,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
28088
28329
  *
28089
28330
  /* @conditional-compile-remove(rich-text-editor-composite-support)
28090
28331
  */
28091
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-D-f-hDmN.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
28332
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BTQ09DfU.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
28092
28333
  /**
28093
28334
  * @private
28094
28335
  */
@@ -29317,6 +29558,10 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
29317
29558
  /* @conditional-compile-remove(soft-mute) */
29318
29559
  onMuteParticipant: (userId) => __awaiter$k(void 0, void 0, void 0, function* () {
29319
29560
  yield adapter.muteParticipant(userId);
29561
+ }),
29562
+ /* @conditional-compile-remove(soft-mute) */
29563
+ onMuteAllRemoteParticipants: () => __awaiter$k(void 0, void 0, void 0, function* () {
29564
+ yield adapter.muteAllRemoteParticipants();
29320
29565
  })
29321
29566
  };
29322
29567
  });
@@ -32866,7 +33111,9 @@ const PEOPLE_SIDE_PANE_ID = 'people';
32866
33111
  const usePeoplePane = (props) => {
32867
33112
  const { updateSidePaneRenderer, inviteLink, onFetchAvatarPersonaData, onFetchParticipantMenuItems, setDrawerMenuItems, mobileView, peopleButtonRef, setParticipantActioned, spotlightedParticipantUserIds, onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, onStopAllSpotlight, maxParticipantsToSpotlight,
32868
33113
  /* @conditional-compile-remove(soft-mute) */
32869
- onMuteParticipant, pinnedParticipants, onPinParticipant, onUnpinParticipant, disablePinMenuItem } = props;
33114
+ onMuteParticipant, pinnedParticipants, onPinParticipant, onUnpinParticipant, disablePinMenuItem,
33115
+ /* @conditional-compile-remove(soft-mute) */
33116
+ onMuteAllRemoteParticipants } = props;
32870
33117
  const closePane = React.useCallback(() => {
32871
33118
  var _a;
32872
33119
  updateSidePaneRenderer(undefined);
@@ -32875,6 +33122,25 @@ const usePeoplePane = (props) => {
32875
33122
  const localeStrings = useLocale().strings.call;
32876
33123
  /* @conditional-compile-remove(soft-mute) */
32877
33124
  const remoteParticipants = useSelector$1(getRemoteParticipants);
33125
+ /* @conditional-compile-remove(soft-mute) */
33126
+ const [showMuteAllPrompt, setShowMuteAllPrompt] = React.useState(false);
33127
+ /* @conditional-compile-remove(soft-mute) */
33128
+ const muteAllPromptLabels = React.useMemo(() => ({
33129
+ confirmButtonLabel: localeStrings.muteAllConfirmButtonLabel,
33130
+ heading: localeStrings.muteAllDialogTitle,
33131
+ text: localeStrings.muteAllDialogContent,
33132
+ cancelButtonLabel: localeStrings.muteAllCancelButtonLabel
33133
+ }), [
33134
+ localeStrings.muteAllConfirmButtonLabel,
33135
+ localeStrings.muteAllDialogTitle,
33136
+ localeStrings.muteAllDialogContent,
33137
+ localeStrings.muteAllCancelButtonLabel
33138
+ ]);
33139
+ /* @conditional-compile-remove(soft-mute) */
33140
+ const onMuteAllPromptConfirm = React.useCallback(() => {
33141
+ onMuteAllRemoteParticipants && onMuteAllRemoteParticipants();
33142
+ setShowMuteAllPrompt(false);
33143
+ }, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);
32878
33144
  const sidePaneHeaderMenuProps = React.useMemo(() => {
32879
33145
  const menuItems = [];
32880
33146
  if (onStopAllSpotlight && spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0) {
@@ -32888,10 +33154,44 @@ const usePeoplePane = (props) => {
32888
33154
  ariaLabel: localeStrings.stopAllSpotlightMenuLabel
32889
33155
  });
32890
33156
  }
33157
+ /* @conditional-compile-remove(soft-mute) */
33158
+ if (onMuteAllRemoteParticipants && remoteParticipants) {
33159
+ let isAllMuted = true;
33160
+ if (remoteParticipants) {
33161
+ for (const participant of Object.values(remoteParticipants)) {
33162
+ if (!participant.isMuted) {
33163
+ isAllMuted = false;
33164
+ break;
33165
+ }
33166
+ }
33167
+ }
33168
+ menuItems.push({
33169
+ key: 'muteAllRemoteParticipants',
33170
+ text: localeStrings.muteAllMenuLabel,
33171
+ iconProps: {
33172
+ iconName: 'ContextualMenuMicMutedIcon',
33173
+ styles: { root: { lineHeight: 0 } }
33174
+ },
33175
+ onClick: () => {
33176
+ setShowMuteAllPrompt(true);
33177
+ },
33178
+ 'data-ui-id': 'participant-item-mute-all-remote-participants',
33179
+ ariaLabel: localeStrings.muteAllMenuLabel,
33180
+ disabled: isAllMuted
33181
+ });
33182
+ }
32891
33183
  return {
32892
33184
  items: menuItems
32893
33185
  };
32894
- }, [onStopAllSpotlight, spotlightedParticipantUserIds, localeStrings.stopAllSpotlightMenuLabel]);
33186
+ }, [
33187
+ onStopAllSpotlight,
33188
+ spotlightedParticipantUserIds,
33189
+ localeStrings.stopAllSpotlightMenuLabel,
33190
+ /* @conditional-compile-remove(soft-mute) */ localeStrings.muteAllMenuLabel,
33191
+ /* @conditional-compile-remove(soft-mute) */ onMuteAllRemoteParticipants,
33192
+ /* @conditional-compile-remove(soft-mute) */ remoteParticipants,
33193
+ /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt
33194
+ ]);
32895
33195
  const onRenderHeader = React.useCallback(() => (React.createElement(SidePaneHeader, { onClose: closePane, headingText: localeStrings.peoplePaneTitle, dismissSidePaneButtonAriaLabel: localeStrings.dismissSidePaneButtonLabel, mobileView: mobileView !== null && mobileView !== void 0 ? mobileView : false })), [mobileView, closePane, localeStrings]);
32896
33196
  const onFetchParticipantMenuItemsForCallComposite = React.useCallback((participantId, myUserId, defaultMenuItems) => {
32897
33197
  var _a;
@@ -33039,7 +33339,10 @@ const usePeoplePane = (props) => {
33039
33339
  localeStrings.pinParticipantMenuItemAriaLabel
33040
33340
  ]);
33041
33341
  const onRenderContent = React.useCallback(() => {
33042
- return (React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItemsForCallComposite, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView, setParticipantActioned: setParticipantActioned, participantListHeadingMoreButtonProps: sidePaneHeaderMenuProps, pinnedParticipants: pinnedParticipants }));
33342
+ return (React.createElement(React.Fragment, null,
33343
+ /* @conditional-compile-remove(soft-mute) */
33344
+ React.createElement(Prompt, Object.assign({}, muteAllPromptLabels, { styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onMuteAllPromptConfirm(), isOpen: showMuteAllPrompt, onCancel: () => setShowMuteAllPrompt(false) })),
33345
+ React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItemsForCallComposite, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView, setParticipantActioned: setParticipantActioned, participantListHeadingMoreButtonProps: sidePaneHeaderMenuProps, pinnedParticipants: pinnedParticipants })));
33043
33346
  }, [
33044
33347
  inviteLink,
33045
33348
  mobileView,
@@ -33048,7 +33351,11 @@ const usePeoplePane = (props) => {
33048
33351
  setDrawerMenuItems,
33049
33352
  setParticipantActioned,
33050
33353
  sidePaneHeaderMenuProps,
33051
- pinnedParticipants
33354
+ pinnedParticipants,
33355
+ /* @conditional-compile-remove(soft-mute) */ showMuteAllPrompt,
33356
+ /* @conditional-compile-remove(soft-mute) */ setShowMuteAllPrompt,
33357
+ /* @conditional-compile-remove(soft-mute) */ muteAllPromptLabels,
33358
+ /* @conditional-compile-remove(soft-mute) */ onMuteAllPromptConfirm
33052
33359
  ]);
33053
33360
  const sidePaneRenderer = React.useMemo(() => ({
33054
33361
  headerRenderer: onRenderHeader,
@@ -33387,13 +33694,40 @@ const VideoEffectsPaneContent = (props) => {
33387
33694
  return VideoEffectsPaneTrampoline(onDismissError, props.updateFocusHandle, activeVideoEffectError, selectableVideoEffects, onEffectChange);
33388
33695
  };
33389
33696
  const VideoEffectsPaneTrampoline = (onDismissError, updateFocusHandle, activeVideoEffectError, selectableVideoEffects, onEffectChange) => {
33697
+ var _a, _b;
33390
33698
  const selectedEffect = useSelector$1(activeVideoBackgroundEffectSelector);
33391
33699
  const isCameraOn = useSelector$1(localVideoSelector).isAvailable;
33392
33700
  const showWarning = !isCameraOn && selectedEffect !== 'none';
33393
33701
  const locale = useLocale();
33702
+ /* @conditional-compile-remove(notifications) */
33703
+ const videoEffectErrorStrings = {
33704
+ title: (_a = locale.strings.call.unableToStartVideoEffect) !== null && _a !== void 0 ? _a : '',
33705
+ closeButtonAriaLabel: locale.strings.call.close
33706
+ };
33707
+ /* @conditional-compile-remove(notifications) */
33708
+ const warningStrings = {
33709
+ title: (_b = locale.strings.call.cameraOffBackgroundEffectWarningText) !== null && _b !== void 0 ? _b : '',
33710
+ closeButtonAriaLabel: locale.strings.call.close
33711
+ };
33712
+ /* @conditional-compile-remove(notifications) */
33713
+ const [errorNotificationDismissed, setErrorNotificationDismissed] = React.useState(false);
33714
+ /* @conditional-compile-remove(notifications) */
33715
+ const [warningNotificationDismissed, setWarningNotificationDismissed] = React.useState(false);
33716
+ const videoEffectErrorTrampoline = () => {
33717
+ /* @conditional-compile-remove(notifications) */
33718
+ return (React.createElement(React.Fragment, null,
33719
+ activeVideoEffectError && isCameraOn && !errorNotificationDismissed && (React.createElement(NotificationBar, { onDismiss: () => {
33720
+ if (activeVideoEffectError) {
33721
+ onDismissError(activeVideoEffectError);
33722
+ }
33723
+ setErrorNotificationDismissed(true);
33724
+ }, notificationBarStrings: videoEffectErrorStrings })),
33725
+ showWarning && !warningNotificationDismissed && (React.createElement(NotificationBar, { onDismiss: () => {
33726
+ setWarningNotificationDismissed(true);
33727
+ }, notificationBarStrings: warningStrings }))));
33728
+ };
33394
33729
  return (React.createElement(react.Stack, { tokens: { childrenGap: '0.75rem' }, className: react.mergeStyles({ paddingLeft: '0.5rem' }) },
33395
- activeVideoEffectError && isCameraOn && (React.createElement(react.MessageBar, { messageBarType: react.MessageBarType.error, onDismiss: () => onDismissError(activeVideoEffectError) }, locale.strings.call.unableToStartVideoEffect)),
33396
- showWarning && (React.createElement(react.MessageBar, { messageBarType: react.MessageBarType.warning }, locale.strings.call.cameraOffBackgroundEffectWarningText)),
33730
+ videoEffectErrorTrampoline(),
33397
33731
  React.createElement(_VideoBackgroundEffectsPicker, { label: locale.strings.call.videoEffectsPaneBackgroundSelectionTitle, styles: backgroundPickerStyles, options: selectableVideoEffects !== null && selectableVideoEffects !== void 0 ? selectableVideoEffects : [], onChange: onEffectChange, selectedEffectKey: selectedEffect, componentRef: updateFocusHandle })));
33398
33732
  };
33399
33733
  const backgroundPickerStyles = {
@@ -33409,7 +33743,7 @@ const backgroundPickerStyles = {
33409
33743
  /** @private */
33410
33744
  const VIDEO_EFFECTS_SIDE_PANE_ID = 'videoeffects';
33411
33745
  /** @private */
33412
- const VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM = 17.5;
33746
+ const VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM = 22;
33413
33747
  /** @private */
33414
33748
  const useVideoEffectsPane = (updateSidePaneRenderer, mobileView, latestErrors, onDismissError, cameraButtonRef) => {
33415
33749
  const closePane = React.useCallback(() => {
@@ -34026,6 +34360,8 @@ const CallArrangement = (props) => {
34026
34360
  const locale = useLocale();
34027
34361
  const role = (_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.role;
34028
34362
  const videoGalleryProps = usePropsFor$1(VideoGallery);
34363
+ /* @conditional-compile-remove(soft-mute) */
34364
+ const muteAllHandlers = useHandlers();
34029
34365
  const { setPromptProps, setIsPromptOpen, hideSpotlightButtons } = props;
34030
34366
  const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight,
34031
34367
  /* @conditional-compile-remove(soft-mute) */
@@ -34062,11 +34398,15 @@ const CallArrangement = (props) => {
34062
34398
  return {
34063
34399
  onMuteParticipant: ['Unknown', 'Organizer', 'Presenter', 'Co-organizer'].includes(role !== null && role !== void 0 ? role : '')
34064
34400
  ? onMuteParticipant
34401
+ : undefined,
34402
+ onMuteAllRemoteParticipants: ['Unknown', 'Organizer', 'Presenter', 'Co-organizer'].includes(role !== null && role !== void 0 ? role : '')
34403
+ ? muteAllHandlers.onMuteAllRemoteParticipants
34065
34404
  : undefined
34066
34405
  };
34067
34406
  }, [
34068
34407
  /* @conditional-compile-remove(soft-mute) */ onMuteParticipant,
34069
- /* @conditional-compile-remove(soft-mute) */ role
34408
+ /* @conditional-compile-remove(soft-mute) */ role,
34409
+ /* @conditional-compile-remove(soft-mute) */ muteAllHandlers.onMuteAllRemoteParticipants
34070
34410
  ]);
34071
34411
  const spotlightPeoplePaneProps = React.useMemo(() => {
34072
34412
  return {
@@ -34157,14 +34497,24 @@ const CallArrangement = (props) => {
34157
34497
  const drawerContainerStylesValue = React.useMemo(() => drawerContainerStyles(DRAWER_Z_INDEX), []);
34158
34498
  const canUnmute = role !== 'Consumer' ? true : false;
34159
34499
  let filteredLatestErrors = props.errorBarProps !== false ? props.latestErrors : [];
34500
+ /* @conditional-compile-remove(notifications) */
34501
+ let filteredLatestErrorNotifications = props.showErrorNotifications
34502
+ ? props.latestErrors
34503
+ : [];
34160
34504
  const isCameraOn = useSelector$1(localVideoSelector).isAvailable;
34161
34505
  // TODO: move this logic to the error bar selector once role is plumbed from the headless SDK
34162
- if (role === 'Consumer' && props.errorBarProps) {
34506
+ if (role === 'Consumer' &&
34507
+ (props.errorBarProps || /* @conditional-compile-remove(notifications) */ props.showErrorNotifications)) {
34163
34508
  filteredLatestErrors = filteredLatestErrors.filter((e) => e.type !== 'callCameraAccessDenied' && e.type !== 'callCameraAccessDeniedSafari');
34509
+ /* @conditional-compile-remove(notifications) */
34510
+ filteredLatestErrorNotifications = filteredLatestErrorNotifications.filter((e) => e.type !== 'callCameraAccessDenied' && e.type !== 'callCameraAccessDeniedSafari');
34164
34511
  }
34165
34512
  const isVideoPaneOpen = useIsParticularSidePaneOpen(VIDEO_EFFECTS_SIDE_PANE_ID);
34166
- if ((isVideoPaneOpen || !isCameraOn) && props.errorBarProps) {
34513
+ if ((isVideoPaneOpen || !isCameraOn) &&
34514
+ (props.errorBarProps || /* @conditional-compile-remove(notifications) */ props.showErrorNotifications)) {
34167
34515
  filteredLatestErrors = filteredLatestErrors.filter((e) => e.type !== 'unableToStartVideoEffect');
34516
+ /* @conditional-compile-remove(notifications) */
34517
+ filteredLatestErrorNotifications = filteredLatestErrorNotifications.filter((e) => e.type !== 'unableToStartVideoEffect');
34168
34518
  }
34169
34519
  /* @conditional-compile-remove(acs-close-captions) */
34170
34520
  const isTeamsCaptions = useSelector$1(getCaptionsKind) === 'TeamsCaptions';
@@ -34183,6 +34533,11 @@ const CallArrangement = (props) => {
34183
34533
  const filteredCapabilitesChangedNotifications = props.mobileView
34184
34534
  ? (_e = props.capabilitiesChangedNotificationBarProps) === null || _e === void 0 ? void 0 : _e.capabilitiesChangedNotifications.filter((notification) => notification.capabilityName !== 'shareScreen')
34185
34535
  : (_f = props.capabilitiesChangedNotificationBarProps) === null || _f === void 0 ? void 0 : _f.capabilitiesChangedNotifications;
34536
+ const errorNotificationTrampoline = () => {
34537
+ /* @conditional-compile-remove(notifications) */
34538
+ return (React.createElement(React.Fragment, null, props.showErrorNotifications && (React.createElement(react.Stack, { styles: bannerNotificationStyles, horizontalAlign: "center", verticalAlign: "center" },
34539
+ React.createElement(Notifications, { onDismissNotification: props.onDismissError, activeNotifications: filteredLatestErrorNotifications })))));
34540
+ };
34186
34541
  return (React.createElement("div", { ref: containerRef, className: react.mergeStyles(containerDivStyles), id: props.id },
34187
34542
  React.createElement(react.Stack, { verticalFill: true, horizontalAlign: "stretch", className: containerClassName, "data-ui-id": props.dataUiId },
34188
34543
  React.createElement(react.Stack, { reversed: true, horizontal: verticalControlBar, grow: true, styles: callArrangementContainerStyles(verticalControlBar) },
@@ -34211,8 +34566,7 @@ const CallArrangement = (props) => {
34211
34566
  React.createElement(react.Stack.Item, { styles: notificationsContainerStyles },
34212
34567
  React.createElement(react.Stack, { styles: bannerNotificationStyles },
34213
34568
  React.createElement(_ComplianceBanner, Object.assign({}, props.complianceBannerProps))),
34214
- props.errorBarProps !== false && (React.createElement(react.Stack, { styles: bannerNotificationStyles },
34215
- React.createElement(ErrorBar, Object.assign({}, props.errorBarProps, { onDismissError: props.onDismissError, activeErrorMessages: filteredLatestErrors })))),
34569
+ errorNotificationTrampoline(),
34216
34570
  props.capabilitiesChangedNotificationBarProps &&
34217
34571
  props.capabilitiesChangedNotificationBarProps.capabilitiesChangedNotifications.length > 0 && (React.createElement(react.Stack, { styles: bannerNotificationStyles },
34218
34572
  React.createElement(CapabilitiesChangedNotificationBar, Object.assign({}, props.capabilitiesChangedNotificationBarProps, { capabilitiesChangedNotifications: filteredCapabilitesChangedNotifications !== null && filteredCapabilitesChangedNotifications !== void 0 ? filteredCapabilitesChangedNotifications : [] })))),
@@ -34674,7 +35028,7 @@ const DtmfDialpadPage = (props) => {
34674
35028
  * @private
34675
35029
  */
34676
35030
  const CallPage = (props) => {
34677
- var _a;
35031
+ var _a, _b;
34678
35032
  const { callInvitationURL, onFetchAvatarPersonaData, onFetchParticipantMenuItems, options, mobileView, galleryLayout = 'floatingLocalVideo', onUserSetGalleryLayoutChange, userSetOverflowGalleryPosition = 'Responsive', onSetUserSetOverflowGalleryPosition, onCloseChatPane, pinnedParticipants, setPinnedParticipants, compositeAudioContext, disableAutoShowDtmfDialer = false } = props;
34679
35033
  // To use useProps to get these states, we need to create another file wrapping Call,
34680
35034
  // It seems unnecessary in this case, so we get the updated states using this approach.
@@ -34705,12 +35059,14 @@ const CallPage = (props) => {
34705
35059
  }
34706
35060
  };
34707
35061
  return (React.createElement(React.Fragment, null,
34708
- React.createElement(CallArrangement, { id: drawerMenuHostId, complianceBannerProps: Object.assign(Object.assign({}, complianceBannerProps), { strings }), errorBarProps: (options === null || options === void 0 ? void 0 : options.errorBar) !== false && errorBarProps, mutedNotificationProps: mutedNotificationProps, callControlProps: {
35062
+ React.createElement(CallArrangement, { id: drawerMenuHostId, complianceBannerProps: Object.assign(Object.assign({}, complianceBannerProps), { strings }), errorBarProps: (options === null || options === void 0 ? void 0 : options.errorBar) !== false && errorBarProps,
35063
+ /* @conditional-compile-remove(notifications) */
35064
+ showErrorNotifications: (_a = options === null || options === void 0 ? void 0 : options.errorBar) !== null && _a !== void 0 ? _a : true, mutedNotificationProps: mutedNotificationProps, callControlProps: {
34709
35065
  callInvitationURL: callInvitationURL,
34710
35066
  onFetchParticipantMenuItems: onFetchParticipantMenuItems,
34711
35067
  options: callControlOptions,
34712
35068
  increaseFlyoutItemSize: mobileView
34713
- }, onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (onRenderGalleryContentTrampoline()) : (React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps)))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, onDismissError: props.onDismissError, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_a = options === null || options === void 0 ? void 0 : options.spotlight) === null || _a === void 0 ? void 0 : _a.hideSpotlightButtons, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants }),
35069
+ }, onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (onRenderGalleryContentTrampoline()) : (React.createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps)))) : (React.createElement(React.Fragment, null)), updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: onCloseChatPane, dataUiId: 'call-page', latestErrors: props.latestErrors, onDismissError: props.onDismissError, onUserSetOverflowGalleryPositionChange: onSetUserSetOverflowGalleryPosition, onUserSetGalleryLayoutChange: onUserSetGalleryLayoutChange, userSetGalleryLayout: galleryLayout, capabilitiesChangedNotificationBarProps: props.capabilitiesChangedNotificationBarProps, onSetDialpadPage: () => setDtmfDialerPresent(!dtmfDialerPresent), dtmfDialerPresent: dtmfDialerPresent, setIsPromptOpen: setIsPromptOpen, setPromptProps: setPromptProps, hideSpotlightButtons: (_b = options === null || options === void 0 ? void 0 : options.spotlight) === null || _b === void 0 ? void 0 : _b.hideSpotlightButtons, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants }),
34714
35070
  React.createElement(Prompt, Object.assign({ isOpen: isPromptOpen, onDismiss: () => setIsPromptOpen(false) }, promptProps))));
34715
35071
  };
34716
35072
  /**
@@ -36104,7 +36460,7 @@ const LobbyTile = (props) => {
36104
36460
  * @private
36105
36461
  */
36106
36462
  const LobbyPage = (props) => {
36107
- var _a, _b, _c, _d;
36463
+ var _a, _b, _c, _d, _e, _f;
36108
36464
  const errorBarProps = usePropsFor$1(ErrorBar);
36109
36465
  const lobbyProps = useSelector$1(lobbySelector);
36110
36466
  const strings = useLocale().strings.call;
@@ -36116,7 +36472,9 @@ const LobbyPage = (props) => {
36116
36472
  ? reduceCallControlsForMobile((_b = props.options) === null || _b === void 0 ? void 0 : _b.callControls)
36117
36473
  : (_c = props.options) === null || _c === void 0 ? void 0 : _c.callControls;
36118
36474
  callControlOptions = disableCallControls(callControlOptions, ['screenShareButton', 'participantsButton']);
36119
- return (React.createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_d = props.options) === null || _d === void 0 ? void 0 : _d.errorBar) !== false && errorBarProps, callControlProps: {
36475
+ return (React.createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_d = props.options) === null || _d === void 0 ? void 0 : _d.errorBar) !== false && errorBarProps,
36476
+ /* @conditional-compile-remove(notifications) */
36477
+ showErrorNotifications: (_f = (_e = props.options) === null || _e === void 0 ? void 0 : _e.errorBar) !== null && _f !== void 0 ? _f : true, callControlProps: {
36120
36478
  options: callControlOptions,
36121
36479
  increaseFlyoutItemSize: props.mobileView
36122
36480
  }, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => (React.createElement(LobbyTile, Object.assign({}, lobbyProps, { showLocalVideoCameraCycleButton: props.mobileView, overlayProps: overlayProps(strings, inLobby, Object.values(participants)) }))), dataUiId: 'lobby-page', updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError }));
@@ -36228,7 +36586,7 @@ const statusTextStyles = { textAlign: 'center', fontSize: '1rem' };
36228
36586
  * @private
36229
36587
  */
36230
36588
  const TransferPage = (props) => {
36231
- var _a, _b, _c, _d, _e;
36589
+ var _a, _b, _c, _d, _e, _f, _g;
36232
36590
  const errorBarProps = usePropsFor$1(ErrorBar);
36233
36591
  const strings = useLocale().strings.call;
36234
36592
  const remoteParticipants = useSelector$1(getRemoteParticipants);
@@ -36262,7 +36620,9 @@ const TransferPage = (props) => {
36262
36620
  React.createElement(Announcer$1, { announcementString: announcerString, ariaLive: "polite" }),
36263
36621
  React.createElement(CallArrangement, { complianceBannerProps: { strings },
36264
36622
  // Ignore errors from before current call. This avoids old errors from showing up when a user re-joins a call.
36265
- errorBarProps: ((_e = props.options) === null || _e === void 0 ? void 0 : _e.errorBar) !== false && errorBarProps, callControlProps: {
36623
+ errorBarProps: ((_e = props.options) === null || _e === void 0 ? void 0 : _e.errorBar) !== false && errorBarProps,
36624
+ /* @conditional-compile-remove(notifications) */
36625
+ showErrorNotifications: (_g = (_f = props.options) === null || _f === void 0 ? void 0 : _f.errorBar) !== null && _g !== void 0 ? _g : true, callControlProps: {
36266
36626
  options: callControlOptions,
36267
36627
  increaseFlyoutItemSize: props.mobileView
36268
36628
  }, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => (React.createElement(TransferTile, { userId: transferTileParticipant ? toFlatCommunicationIdentifier(transferTileParticipant === null || transferTileParticipant === void 0 ? void 0 : transferTileParticipant.identifier) : undefined, displayName: transferParticipantDisplayName, initialsName: transferParticipantDisplayName, statusText: pageSubject === 'transferTarget'
@@ -36470,7 +36830,7 @@ const stringsTrampoline = (locale) => {
36470
36830
  * @beta
36471
36831
  */
36472
36832
  const HoldPage = (props) => {
36473
- var _a, _b, _c;
36833
+ var _a, _b, _c, _d, _e;
36474
36834
  const errorBarProps = usePropsFor$1(ErrorBar);
36475
36835
  const strings = useLocale().strings.call;
36476
36836
  let callControlOptions = props.mobileView
@@ -36485,7 +36845,9 @@ const HoldPage = (props) => {
36485
36845
  /* @conditional-compile-remove(one-to-n-calling) */
36486
36846
  'holdButton'
36487
36847
  ]);
36488
- return (React.createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_c = props.options) === null || _c === void 0 ? void 0 : _c.errorBar) !== false && errorBarProps, callControlProps: {
36848
+ return (React.createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_c = props.options) === null || _c === void 0 ? void 0 : _c.errorBar) !== false && errorBarProps,
36849
+ /* @conditional-compile-remove(notifications) */
36850
+ showErrorNotifications: (_e = (_d = props.options) === null || _d === void 0 ? void 0 : _d.errorBar) !== null && _e !== void 0 ? _e : true, callControlProps: {
36489
36851
  options: callControlOptions,
36490
36852
  increaseFlyoutItemSize: props.mobileView
36491
36853
  }, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => React.createElement(HoldPane, null), dataUiId: 'hold-page', updateSidePaneRenderer: props.updateSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: props.latestErrors, onDismissError: props.onDismissError }));
@@ -36981,14 +37343,24 @@ const MainScreen = (props) => {
36981
37343
  // This works by tracking the most recent timestamp of any active error type.
36982
37344
  // And then tracking when that error type was last dismissed.
36983
37345
  const activeErrors = usePropsFor$1(ErrorBar).activeErrorMessages;
37346
+ /* @conditional-compile-remove(notifications) */
37347
+ const activeInCallErrors = useAdaptedSelector(errorNotificationsSelector).activeErrorMessages;
36984
37348
  const [trackedErrors, setTrackedErrors] = React.useState({});
37349
+ /* @conditional-compile-remove(notifications) */
37350
+ const [trackedInCallErrors, setTrackedInCallErrors] = React.useState({});
36985
37351
  React.useEffect(() => {
36986
37352
  setTrackedErrors((prev) => updateTrackedErrorsWithActiveErrors(prev, activeErrors));
36987
- }, [activeErrors]);
37353
+ /* @conditional-compile-remove(notifications) */
37354
+ setTrackedInCallErrors((prev) => updateTrackedErrorsWithActiveErrors(prev, activeInCallErrors));
37355
+ }, [activeErrors, /* @conditional-compile-remove(notifications) */ activeInCallErrors]);
36988
37356
  const onDismissError = React.useCallback((error) => {
36989
37357
  setTrackedErrors((prev) => trackErrorAsDismissed(error.type, prev));
37358
+ /* @conditional-compile-remove(notifications) */
37359
+ setTrackedInCallErrors((prev) => trackErrorAsDismissed(error.type, prev));
36990
37360
  }, []);
36991
37361
  const latestErrors = React.useMemo(() => filterLatestErrors(activeErrors, trackedErrors), [activeErrors, trackedErrors]);
37362
+ /* @conditional-compile-remove(notifications) */
37363
+ const latestInCallErrors = React.useMemo(() => filterLatestErrors(activeInCallErrors, trackedInCallErrors), [activeInCallErrors, trackedInCallErrors]);
36992
37364
  const callees = useSelector$1(getTargetCallees);
36993
37365
  const locale = useLocale();
36994
37366
  const palette = useTheme().palette;
@@ -36997,6 +37369,10 @@ const MainScreen = (props) => {
36997
37369
  const leavePageStyle = React.useMemo(() => leavingPageStyle(palette), [palette]);
36998
37370
  let pageElement;
36999
37371
  const [pinnedParticipants, setPinnedParticipants] = React.useState([]);
37372
+ const getLatestErrorsTrampoline = () => {
37373
+ /* @conditional-compile-remove(notifications) */
37374
+ return latestInCallErrors;
37375
+ };
37000
37376
  switch (page) {
37001
37377
  case 'configuration':
37002
37378
  pageElement = (React.createElement(ConfigurationPage, { mobileView: props.mobileView, startCallHandler: () => {
@@ -37047,17 +37423,17 @@ const MainScreen = (props) => {
37047
37423
  break;
37048
37424
  }
37049
37425
  case 'lobby':
37050
- pageElement = (React.createElement(LobbyPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: latestErrors, onDismissError: onDismissError, capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps }));
37426
+ pageElement = (React.createElement(LobbyPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: getLatestErrorsTrampoline(), onDismissError: onDismissError, capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps }));
37051
37427
  break;
37052
37428
  case 'transferring':
37053
- pageElement = (React.createElement(TransferPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onFetchAvatarPersonaData: onFetchAvatarPersonaData, latestErrors: latestErrors, onDismissError: onDismissError, capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps }));
37429
+ pageElement = (React.createElement(TransferPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onFetchAvatarPersonaData: onFetchAvatarPersonaData, latestErrors: getLatestErrorsTrampoline(), onDismissError: onDismissError, capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps }));
37054
37430
  break;
37055
37431
  case 'call':
37056
- pageElement = (React.createElement(CallPage, { callInvitationURL: callInvitationUrl, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItems, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: props.onCloseChatPane, latestErrors: latestErrors, onDismissError: onDismissError, galleryLayout: userSetGalleryLayout, onUserSetGalleryLayoutChange: setUserSetGalleryLayout, onSetUserSetOverflowGalleryPosition: setUserSetOverflowGalleryPosition, userSetOverflowGalleryPosition: userSetOverflowGalleryPosition, capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants, compositeAudioContext: compositeAudioContext, disableAutoShowDtmfDialer: (_q = props.options) === null || _q === void 0 ? void 0 : _q.disableAutoShowDtmfDialer }));
37432
+ pageElement = (React.createElement(CallPage, { callInvitationURL: callInvitationUrl, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItems, mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, onCloseChatPane: props.onCloseChatPane, latestErrors: getLatestErrorsTrampoline(), onDismissError: onDismissError, galleryLayout: userSetGalleryLayout, onUserSetGalleryLayoutChange: setUserSetGalleryLayout, onSetUserSetOverflowGalleryPosition: setUserSetOverflowGalleryPosition, userSetOverflowGalleryPosition: userSetOverflowGalleryPosition, capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps, pinnedParticipants: pinnedParticipants, setPinnedParticipants: setPinnedParticipants, compositeAudioContext: compositeAudioContext, disableAutoShowDtmfDialer: (_q = props.options) === null || _q === void 0 ? void 0 : _q.disableAutoShowDtmfDialer }));
37057
37433
  break;
37058
37434
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
37059
37435
  case 'hold':
37060
- pageElement = (React.createElement(React.Fragment, null, React.createElement(HoldPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: latestErrors, onDismissError: onDismissError, capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps })));
37436
+ pageElement = (React.createElement(React.Fragment, null, React.createElement(HoldPage, { mobileView: props.mobileView, modalLayerHostId: props.modalLayerHostId, options: props.options, updateSidePaneRenderer: setSidePaneRenderer, mobileChatTabHeader: props.mobileChatTabHeader, latestErrors: getLatestErrorsTrampoline(), onDismissError: onDismissError, capabilitiesChangedNotificationBarProps: capabilitiesChangedNotificationBarProps })));
37061
37437
  break;
37062
37438
  }
37063
37439
  useEndedCallConsoleErrors(endedCall);
@@ -37687,6 +38063,8 @@ class AzureCommunicationCallAdapter {
37687
38063
  this.stopAllSpotlight.bind(this);
37688
38064
  /* @conditional-compile-remove(soft-mute) */
37689
38065
  this.muteParticipant.bind(this);
38066
+ /* @conditional-compile-remove(soft-mute) */
38067
+ this.muteAllRemoteParticipants.bind(this);
37690
38068
  }
37691
38069
  dispose() {
37692
38070
  this.resetDiagnosticsForwarder();
@@ -38149,6 +38527,12 @@ class AzureCommunicationCallAdapter {
38149
38527
  this.handlers.onMuteParticipant(userId);
38150
38528
  });
38151
38529
  }
38530
+ /* @conditional-compile-remove(soft-mute) */
38531
+ muteAllRemoteParticipants() {
38532
+ return __awaiter$5(this, void 0, void 0, function* () {
38533
+ this.handlers.onMuteAllRemoteParticipants();
38534
+ });
38535
+ }
38152
38536
  startSpotlight(userIds) {
38153
38537
  return __awaiter$5(this, void 0, void 0, function* () {
38154
38538
  this.handlers.onStartSpotlight(userIds);
@@ -38966,6 +39350,12 @@ class CallWithChatBackedCallAdapter {
38966
39350
  return this.callWithChatAdapter.muteParticipant(userId);
38967
39351
  });
38968
39352
  }
39353
+ /* @conditional-compile-remove(soft-mute) */
39354
+ muteAllRemoteParticipants() {
39355
+ return __awaiter$4(this, void 0, void 0, function* () {
39356
+ return this.callWithChatAdapter.muteAllRemoteParticipants();
39357
+ });
39358
+ }
38969
39359
  }
38970
39360
  function callAdapterStateFromCallWithChatAdapterState(callWithChatAdapterState) {
38971
39361
  return {
@@ -40040,6 +40430,12 @@ class AzureCommunicationCallWithChatAdapter {
40040
40430
  return this.callAdapter.muteParticipant(userId);
40041
40431
  });
40042
40432
  }
40433
+ /* @conditional-compile-remove(soft-mute) */
40434
+ muteAllRemoteParticipants() {
40435
+ return __awaiter$2(this, void 0, void 0, function* () {
40436
+ return this.callAdapter.muteAllRemoteParticipants();
40437
+ });
40438
+ }
40043
40439
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
40044
40440
  on(event, listener) {
40045
40441
  switch (event) {
@@ -41103,4 +41499,4 @@ exports.useTeamsCall = useTeamsCall;
41103
41499
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
41104
41500
  exports.useTeamsCallAgent = useTeamsCallAgent;
41105
41501
  exports.useTheme = useTheme;
41106
- //# sourceMappingURL=index-DaC5GeKa.js.map
41502
+ //# sourceMappingURL=index-BxMyKmFB.js.map