@azure/communication-react 1.13.0-alpha-202402090012 → 1.13.0-alpha-202402110013

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 (95) hide show
  1. package/dist/communication-react.d.ts +67 -61
  2. package/dist/dist-cjs/communication-react/index.js +238 -147
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  6. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +4 -0
  7. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +8 -0
  8. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  9. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +5 -1
  10. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  11. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +2 -2
  12. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +6 -6
  13. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  14. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +1 -1
  15. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  16. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +3 -3
  17. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  18. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts +1 -1
  19. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +15 -5
  20. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  21. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.d.ts +1 -0
  22. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +13 -5
  23. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  24. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +5 -1
  25. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  26. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +2 -1
  27. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +15 -3
  28. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  29. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +32 -0
  30. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  31. package/dist/dist-esm/calling-stateful-client/src/Converter.js +1 -1
  32. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  33. package/dist/dist-esm/calling-stateful-client/src/SpotlightSubscriber.js +6 -3
  34. package/dist/dist-esm/calling-stateful-client/src/SpotlightSubscriber.js.map +1 -1
  35. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +4 -0
  36. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  37. package/dist/dist-esm/react-components/src/components/ImageOverlay.d.ts +3 -7
  38. package/dist/dist-esm/react-components/src/components/ImageOverlay.js +15 -14
  39. package/dist/dist-esm/react-components/src/components/ImageOverlay.js.map +1 -1
  40. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +0 -5
  41. package/dist/dist-esm/react-components/src/components/ParticipantList.js +1 -1
  42. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  43. package/dist/dist-esm/react-components/src/components/RTE/RichTextEditor.js.map +1 -1
  44. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +3 -2
  45. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +4 -2
  46. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  47. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.d.ts +4 -2
  48. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +13 -6
  49. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  50. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +10 -4
  51. package/dist/dist-esm/react-components/src/components/VideoGallery.js +7 -4
  52. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  53. package/dist/dist-esm/react-components/src/components/styles/ImageOverlay.style.d.ts +7 -8
  54. package/dist/dist-esm/react-components/src/components/styles/ImageOverlay.style.js +27 -43
  55. package/dist/dist-esm/react-components/src/components/styles/ImageOverlay.style.js.map +1 -1
  56. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +3 -1
  57. package/dist/dist-esm/react-components/src/theming/themes.d.ts +8 -21
  58. package/dist/dist-esm/react-components/src/theming/themes.js +7 -16
  59. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  60. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts +3 -7
  61. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  62. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts +3 -0
  63. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  64. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
  65. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  66. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +7 -4
  67. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +11 -5
  68. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  69. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +20 -6
  70. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  71. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +1 -0
  72. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  73. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +3 -2
  74. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  75. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.d.ts +3 -2
  76. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +18 -5
  77. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  78. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +4 -4
  79. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  80. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -0
  81. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  82. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.d.ts +3 -3
  83. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.js +16 -8
  84. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/spotlightUtils.js.map +1 -1
  85. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +5 -2
  86. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +4 -4
  87. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  88. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +6 -7
  89. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  90. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +2 -2
  91. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +4 -4
  92. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  93. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -0
  94. package/dist/tsdoc-metadata.json +1 -1
  95. package/package.json +2 -2
@@ -173,7 +173,7 @@ function getDefaultExportFromCjs (x) {
173
173
  // Copyright (c) Microsoft Corporation.
174
174
  // Licensed under the MIT License.
175
175
  // GENERATED FILE. DO NOT EDIT MANUALLY.
176
- var telemetryVersion = '1.13.0-alpha-202402090012';
176
+ var telemetryVersion = '1.13.0-alpha-202402110013';
177
177
 
178
178
 
179
179
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -417,6 +417,14 @@ const getSpotlightedParticipants = (state, props) => {
417
417
  var _a, _b;
418
418
  return (_b = (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.spotlight) === null || _b === void 0 ? void 0 : _b.spotlightedParticipants;
419
419
  };
420
+ /* @conditional-compile-remove(spotlight) */
421
+ /**
422
+ * @private
423
+ */
424
+ const getMaxParticipantsToSpotlight = (state, props) => {
425
+ var _a, _b;
426
+ return (_b = (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.spotlight) === null || _b === void 0 ? void 0 : _b.maxParticipantsToSpotlight;
427
+ };
420
428
  /* @conditional-compile-remove(reaction) */
421
429
  /**
422
430
  * @private
@@ -1153,14 +1161,14 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1153
1161
  /* @conditional-compile-remove(end-of-call-survey) */
1154
1162
  const onSubmitSurvey = (survey) => __awaiter$P(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.CallSurvey).submitSurvey(survey)); });
1155
1163
  /* @conditional-compile-remove(spotlight) */
1156
- const onStartSpotlight = (userId) => __awaiter$P(void 0, void 0, void 0, function* () {
1157
- const participant = _toCommunicationIdentifier(userId);
1158
- yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).startSpotlight([participant]));
1164
+ const onStartSpotlight = (userIds) => __awaiter$P(void 0, void 0, void 0, function* () {
1165
+ const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1166
+ yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).startSpotlight(participants));
1159
1167
  });
1160
1168
  /* @conditional-compile-remove(spotlight) */
1161
- const onStopSpotlight = (userId) => __awaiter$P(void 0, void 0, void 0, function* () {
1162
- const participant = _toCommunicationIdentifier(userId);
1163
- yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight([participant]));
1169
+ const onStopSpotlight = (userIds) => __awaiter$P(void 0, void 0, void 0, function* () {
1170
+ const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1171
+ yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight(participants));
1164
1172
  });
1165
1173
  return {
1166
1174
  onHangUp,
@@ -1743,7 +1751,7 @@ function convertSdkParticipantToDeclarativeParticipant(participant) {
1743
1751
  /* @conditional-compile-remove(hide-attendee-name) */
1744
1752
  role: participant.role,
1745
1753
  /* @conditional-compile-remove(spotlight) */
1746
- spotlighted: undefined
1754
+ spotlight: undefined
1747
1755
  };
1748
1756
  }
1749
1757
  /**
@@ -2226,11 +2234,11 @@ let CallContext$2 = class CallContext {
2226
2234
  });
2227
2235
  }
2228
2236
  /* @conditional-compile-remove(spotlight) */
2229
- setSpotlight(callId, spotlightedParticipants) {
2237
+ setSpotlight(callId, spotlightedParticipants, maxParticipantsToSpotlight) {
2230
2238
  this.modifyState((draft) => {
2231
2239
  const call = draft.calls[this._callIdHistory.latestCallId(callId)];
2232
2240
  if (call) {
2233
- call.spotlight = { spotlightedParticipants };
2241
+ call.spotlight = { spotlightedParticipants, maxParticipantsToSpotlight };
2234
2242
  }
2235
2243
  });
2236
2244
  }
@@ -2241,7 +2249,19 @@ let CallContext$2 = class CallContext {
2241
2249
  if (call) {
2242
2250
  const participant = call.remoteParticipants[toFlatCommunicationIdentifier(spotlightedParticipant.identifier)];
2243
2251
  if (participant) {
2244
- participant.spotlighted = { spotlightedOrderPosition: spotlightedParticipant.order };
2252
+ participant.spotlight = { spotlightedOrderPosition: spotlightedParticipant.order };
2253
+ }
2254
+ }
2255
+ });
2256
+ }
2257
+ /* @conditional-compile-remove(spotlight) */
2258
+ setParticipantNotSpotlighted(callId, spotlightedParticipant) {
2259
+ this.modifyState((draft) => {
2260
+ const call = draft.calls[this._callIdHistory.latestCallId(callId)];
2261
+ if (call) {
2262
+ const participant = call.remoteParticipants[toFlatCommunicationIdentifier(spotlightedParticipant.identifier)];
2263
+ if (participant) {
2264
+ participant.spotlight = undefined;
2245
2265
  }
2246
2266
  }
2247
2267
  });
@@ -3838,11 +3858,14 @@ class SpotlightSubscriber {
3838
3858
  this.unsubscribe = () => {
3839
3859
  this._spotlightFeature.off('spotlightChanged', this.spotlightChanged);
3840
3860
  };
3841
- this.spotlightChanged = () => {
3842
- this._context.setSpotlight(this._callIdRef.callId, this._spotlightFeature.getSpotlightedParticipants());
3843
- for (const addedParticipant of this._spotlightFeature.getSpotlightedParticipants()) {
3861
+ this.spotlightChanged = (args) => {
3862
+ this._context.setSpotlight(this._callIdRef.callId, this._spotlightFeature.getSpotlightedParticipants(), this._spotlightFeature.maxParticipantsToSpotlight);
3863
+ for (const addedParticipant of args.added) {
3844
3864
  this._context.setParticipantSpotlighted(this._callIdRef.callId, addedParticipant);
3845
3865
  }
3866
+ for (const removedParticipant of args.removed) {
3867
+ this._context.setParticipantNotSpotlighted(this._callIdRef.callId, removedParticipant);
3868
+ }
3846
3869
  };
3847
3870
  this._callIdRef = callIdRef;
3848
3871
  this._context = context;
@@ -4409,6 +4432,12 @@ class ProxyCallCommon {
4409
4432
  const proxyFeature = new ProxyTransferCallFeature(this._context, target);
4410
4433
  return new Proxy(transferFeature, proxyFeature);
4411
4434
  }
4435
+ /* @conditional-compile-remove(spotlight) */
4436
+ if (args[0] === communicationCalling.Features.Spotlight) {
4437
+ const spotlightFeature = target.feature(communicationCalling.Features.Spotlight);
4438
+ const proxyFeature = new ProxySpotlightCallFeature(this._context);
4439
+ return new Proxy(spotlightFeature, proxyFeature);
4440
+ }
4412
4441
  return target.feature(...args);
4413
4442
  }, 'Call.feature');
4414
4443
  }
@@ -4461,6 +4490,31 @@ class ProxyTeamsCaptions {
4461
4490
  }
4462
4491
  }
4463
4492
  }
4493
+ /* @conditional-compile-remove(spotlight) */
4494
+ /**
4495
+ * @private
4496
+ */
4497
+ class ProxySpotlightCallFeature {
4498
+ constructor(context) {
4499
+ this._context = context;
4500
+ }
4501
+ get(target, prop) {
4502
+ switch (prop) {
4503
+ case 'startSpotlight':
4504
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$I(this, void 0, void 0, function* () {
4505
+ const ret = yield target.startSpotlight(...args);
4506
+ return ret;
4507
+ }), 'Call.feature');
4508
+ case 'stopSpotlight':
4509
+ return this._context.withAsyncErrorTeedToState((...args) => __awaiter$I(this, void 0, void 0, function* () {
4510
+ const ret = yield target.stopSpotlight(...args);
4511
+ return ret;
4512
+ }), 'Call.feature');
4513
+ default:
4514
+ return Reflect.get(target, prop);
4515
+ }
4516
+ }
4517
+ }
4464
4518
  /* @conditional-compile-remove(call-transfer) */
4465
4519
  /**
4466
4520
  * @private
@@ -5297,7 +5351,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
5297
5351
  wordBreak: 'break-word'
5298
5352
  });
5299
5353
 
5300
- var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold"};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",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};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"};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",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:"{author} said {message}",messageContentMineAriaText:"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",downloadFile:"Download file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",fileCardGroupMessage:"The message has {fileCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted"};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."};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"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",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight"};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"};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 AttendeeRole$k="Attendee";var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$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,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,AttendeeRole:AttendeeRole$k};
5354
+ var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold"};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",fileUploadsPendingError:"Uploading... Please wait.",removeFile:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed"};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"};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",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:"{author} said {message}",messageContentMineAriaText:"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",downloadFile:"Download file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",fileCardGroupMessage:"The message has {fileCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted"};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 videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"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"};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"};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 AttendeeRole$k="Attendee";var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$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,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,AttendeeRole:AttendeeRole$k};
5301
5355
 
5302
5356
  // Copyright (c) Microsoft Corporation.
5303
5357
  // Licensed under the MIT License.
@@ -6124,14 +6178,6 @@ const lightTheme = {
6124
6178
  /* @conditional-compile-remove(raise-hand) */
6125
6179
  raiseHandGold: '#eaa300'
6126
6180
  },
6127
- /* @conditional-compile-remove(image-overlay) */
6128
- chatPalette: {
6129
- modalOverlayBlack: '#000000',
6130
- modalTitleWhite: '#ffffff',
6131
- modalButtonBackground: '#1b1a19',
6132
- modalButtonBackgroundHover: '#252423',
6133
- modalButtonBackgroundActive: '#292827'
6134
- },
6135
6181
  semanticColors: {
6136
6182
  errorText: '#a80000'
6137
6183
  }
@@ -6175,18 +6221,17 @@ const darkTheme = {
6175
6221
  /* @conditional-compile-remove(raise-hand) */
6176
6222
  raiseHandGold: '#eaa300'
6177
6223
  },
6178
- /* @conditional-compile-remove(image-overlay) */
6179
- chatPalette: {
6180
- modalOverlayBlack: '#000000',
6181
- modalTitleWhite: '#ffffff',
6182
- modalButtonBackground: '#1b1a19',
6183
- modalButtonBackgroundHover: '#252423',
6184
- modalButtonBackgroundActive: '#292827'
6185
- },
6186
6224
  semanticColors: {
6187
6225
  errorText: '#f1707b'
6188
6226
  }
6189
6227
  };
6228
+ /* @conditional-compile-remove(image-overlay) */
6229
+ /**
6230
+ * Preset dark theme for the ImageOverlay component.
6231
+ *
6232
+ * @beta
6233
+ */
6234
+ const imageOverlayTheme = { palette: darkTheme.palette };
6190
6235
 
6191
6236
  // Copyright (c) Microsoft Corporation.
6192
6237
  // Licensed under the MIT License.
@@ -8761,10 +8806,11 @@ const downloadIcon = {
8761
8806
  * @private
8762
8807
  */
8763
8808
  const overlayStyles = (theme) => {
8809
+ var _a;
8764
8810
  return {
8765
8811
  root: {
8766
- background: theme.chatPalette.modalOverlayBlack,
8767
- opacity: '0.85'
8812
+ background: (_a = theme.palette) === null || _a === void 0 ? void 0 : _a.white,
8813
+ opacity: '0.95'
8768
8814
  }
8769
8815
  };
8770
8816
  };
@@ -8813,14 +8859,14 @@ const titleBarContainerStyle = {
8813
8859
  alignContent: 'center',
8814
8860
  alignItems: 'center'
8815
8861
  };
8816
- /* @conditional-compile-remove(image-overlay) */
8817
8862
  /**
8818
8863
  * @private
8819
8864
  */
8820
8865
  const titleStyle$2 = (theme) => {
8866
+ var _a;
8821
8867
  return {
8822
8868
  paddingLeft: '0.5rem',
8823
- color: theme.chatPalette.modalTitleWhite,
8869
+ color: (_a = theme.palette) === null || _a === void 0 ? void 0 : _a.black,
8824
8870
  fontFamily: 'inherit',
8825
8871
  fontSize: '0.875rem',
8826
8872
  fontStyle: 'normal',
@@ -8868,77 +8914,60 @@ const normalImageStyle = {
8868
8914
  maxHeight: '100%',
8869
8915
  maxWidth: '100%'
8870
8916
  };
8871
- /* @conditional-compile-remove(image-overlay) */
8872
8917
  /**
8873
8918
  * @private
8874
8919
  */
8875
8920
  const brokenImageStyle = (theme) => {
8921
+ var _a;
8876
8922
  return {
8877
- color: theme.chatPalette.modalTitleWhite
8923
+ color: (_a = theme.palette) === null || _a === void 0 ? void 0 : _a.black
8878
8924
  };
8879
8925
  };
8880
- /* @conditional-compile-remove(image-overlay) */
8881
8926
  /**
8882
8927
  * @private
8883
8928
  */
8884
8929
  const closeButtonStyles = (theme) => {
8930
+ var _a, _b, _c;
8885
8931
  return {
8886
- color: theme.chatPalette.modalTitleWhite,
8932
+ color: (_a = theme.palette) === null || _a === void 0 ? void 0 : _a.black,
8887
8933
  ':hover': {
8888
- color: theme.chatPalette.modalTitleWhite,
8889
- backgroundColor: theme.chatPalette.modalButtonBackgroundHover
8934
+ color: (_b = theme.palette) === null || _b === void 0 ? void 0 : _b.black
8890
8935
  },
8891
8936
  ':active': {
8892
- color: theme.chatPalette.modalTitleWhite,
8893
- backgroundColor: theme.chatPalette.modalButtonBackgroundActive
8937
+ color: (_c = theme.palette) === null || _c === void 0 ? void 0 : _c.black
8894
8938
  }
8895
8939
  };
8896
8940
  };
8897
- /* @conditional-compile-remove(image-overlay) */
8898
8941
  /**
8899
8942
  * @private
8900
8943
  */
8901
- const downloadButtonStyle = (theme) => {
8902
- return {
8903
- margin: '0 0.5rem',
8904
- height: '32px',
8905
- borderWidth: '1px',
8906
- fontSize: '0.875rem', // 14px
8907
- fontWeight: 600,
8908
- padding: '0.38rem 0.75rem',
8909
- borderRadius: '4px',
8910
- backgroundColor: theme.chatPalette.modalButtonBackground,
8911
- color: theme.chatPalette.modalTitleWhite,
8912
- whiteSpace: 'nowrap',
8913
- ':hover': {
8914
- color: theme.chatPalette.modalTitleWhite,
8915
- backgroundColor: theme.chatPalette.modalButtonBackgroundHover
8916
- },
8917
- ':active': {
8918
- color: theme.chatPalette.modalTitleWhite,
8919
- backgroundColor: theme.chatPalette.modalButtonBackgroundActive
8920
- },
8921
- '@media (max-width: 25rem)': {
8922
- display: 'none'
8923
- }
8924
- };
8944
+ const downloadButtonStyle = {
8945
+ margin: '0 0.5rem',
8946
+ height: '32px',
8947
+ borderWidth: '1px',
8948
+ fontSize: '0.875rem', // 14px
8949
+ fontWeight: 600,
8950
+ padding: '0.38rem 0.75rem',
8951
+ borderRadius: '4px',
8952
+ whiteSpace: 'nowrap',
8953
+ '@media (max-width: 25rem)': {
8954
+ display: 'none'
8955
+ }
8925
8956
  };
8926
- /* @conditional-compile-remove(image-overlay) */
8927
8957
  /**
8928
8958
  * @private
8929
8959
  */
8930
8960
  const smallDownloadButtonContainerStyle = (theme) => {
8961
+ var _a, _b, _c;
8931
8962
  return {
8932
8963
  marginRight: '0.5rem',
8933
- color: theme.chatPalette.modalTitleWhite,
8934
8964
  whiteSpace: 'nowrap',
8965
+ color: (_a = theme.palette) === null || _a === void 0 ? void 0 : _a.black,
8935
8966
  ':hover': {
8936
- color: theme.chatPalette.modalTitleWhite,
8937
- backgroundColor: theme.chatPalette.modalButtonBackgroundHover
8967
+ color: (_b = theme.palette) === null || _b === void 0 ? void 0 : _b.black
8938
8968
  },
8939
8969
  ':active': {
8940
- color: theme.chatPalette.modalTitleWhite,
8941
- backgroundColor: theme.chatPalette.modalButtonBackgroundActive
8970
+ color: (_c = theme.palette) === null || _c === void 0 ? void 0 : _c.black
8942
8971
  },
8943
8972
  '@media (min-width: 25rem)': {
8944
8973
  display: 'none'
@@ -8956,37 +8985,36 @@ const smallDownloadButtonContainerStyle = (theme) => {
8956
8985
  * @beta
8957
8986
  */
8958
8987
  const ImageOverlay = (props) => {
8959
- const { isOpen, imageSrc, title, titleIcon, altText, onDownloadButtonClicked, onDismiss, onError } = props;
8960
- const theme = useTheme();
8988
+ const { isOpen, imageSrc, title, titleIcon, altText, onDownloadButtonClicked, onDismiss } = props;
8961
8989
  /* @conditional-compile-remove(image-overlay) */
8962
8990
  const localeStrings = useLocale$1().strings.imageOverlay;
8963
8991
  const [isImageLoaded, setIsImageLoaded] = React.useState(true);
8964
- const imageStyle = isImageLoaded ? normalImageStyle : brokenImageStyle(theme);
8992
+ const imageStyle = isImageLoaded ? normalImageStyle : brokenImageStyle(imageOverlayTheme);
8965
8993
  const renderHeaderBar = () => {
8966
8994
  return (React.createElement(react.Stack, { className: react.mergeStyles(headerStyle) },
8967
8995
  React.createElement(react.Stack, { className: react.mergeStyles(titleBarContainerStyle) },
8968
8996
  titleIcon,
8969
- React.createElement(react.Stack.Item, { className: react.mergeStyles(titleStyle$2(theme)), "aria-label": title || 'Image' }, title)),
8997
+ React.createElement(react.Stack.Item, { className: react.mergeStyles(titleStyle$2(imageOverlayTheme)), "aria-label": title || 'Image' }, title)),
8970
8998
  React.createElement(react.Stack, { className: react.mergeStyles(controlBarContainerStyle) },
8971
- React.createElement(react.DefaultButton, { className: react.mergeStyles(downloadButtonStyle(theme)),
8999
+ onDownloadButtonClicked && (React.createElement(react.DefaultButton, { className: react.mergeStyles(downloadButtonStyle),
8972
9000
  /* @conditional-compile-remove(image-overlay) */
8973
- text: localeStrings.downloadButtonLabel, onClick: () => onDownloadButtonClicked(imageSrc), onRenderIcon: () => React.createElement(react.Icon, { iconName: downloadIcon.iconName, className: react.mergeStyles(downloadIconStyle) }), "aria-live": 'polite', "aria-label": localeStrings.downloadButtonLabel }),
8974
- React.createElement(react.IconButton, { iconProps: downloadIcon, className: react.mergeStyles(smallDownloadButtonContainerStyle(theme)), onClick: () => onDownloadButtonClicked(imageSrc), "aria-label": localeStrings.downloadButtonLabel, "aria-live": 'polite' }),
8975
- React.createElement(react.IconButton, { iconProps: cancelIcon, className: react.mergeStyles(closeButtonStyles(theme)), onClick: onDismiss,
9001
+ text: localeStrings.downloadButtonLabel, onClick: () => onDownloadButtonClicked && onDownloadButtonClicked(imageSrc), onRenderIcon: () => React.createElement(react.Icon, { iconName: downloadIcon.iconName, className: react.mergeStyles(downloadIconStyle) }), "aria-live": 'polite', "aria-label": localeStrings.downloadButtonLabel })),
9002
+ onDownloadButtonClicked && (React.createElement(react.IconButton, { iconProps: downloadIcon, className: react.mergeStyles(smallDownloadButtonContainerStyle(imageOverlayTheme)), onClick: () => onDownloadButtonClicked && onDownloadButtonClicked(imageSrc), "aria-label": localeStrings.downloadButtonLabel, "aria-live": 'polite' })),
9003
+ React.createElement(react.IconButton, { iconProps: cancelIcon, className: react.mergeStyles(closeButtonStyles(imageOverlayTheme)), onClick: onDismiss,
8976
9004
  /* @conditional-compile-remove(image-overlay) */
8977
9005
  ariaLabel: localeStrings.dismissButtonAriaLabel, "aria-live": 'polite' }))));
8978
9006
  };
8979
9007
  const renderBodyWithLightDismiss = () => {
8980
- return (React.createElement(react.Stack, { className: react.mergeStyles(bodyContainer), onClick: () => props.onDismiss() }, imageSrc && (React.createElement("img", { src: imageSrc, className: react.mergeStyles(imageStyle), alt: altText || 'image', "aria-label": 'image-overlay-main-image', "aria-live": 'polite', onError: (event) => {
9008
+ return (React.createElement(react.Stack, { className: react.mergeStyles(bodyContainer), onClick: () => props.onDismiss() }, imageSrc && (React.createElement("img", { src: imageSrc, className: react.mergeStyles(imageStyle), alt: altText || 'image', "aria-label": 'image-overlay-main-image', "aria-live": 'polite', onError: () => {
8981
9009
  setIsImageLoaded(false);
8982
- onError && onError(event);
8983
9010
  }, onClick: (event) => event.stopPropagation(), onDoubleClick: (event) => {
8984
9011
  event.persist();
8985
9012
  } }))));
8986
9013
  };
8987
- return (React.createElement(react.Modal, { titleAriaId: title, isOpen: isOpen, onDismiss: onDismiss, overlay: { styles: Object.assign({}, overlayStyles(theme)) }, styles: { main: focusTrapZoneStyle, scrollableContent: scrollableContentStyle }, isDarkOverlay: true },
8988
- renderHeaderBar(),
8989
- renderBodyWithLightDismiss()));
9014
+ return (React.createElement(FluentThemeProvider, { fluentTheme: imageOverlayTheme },
9015
+ React.createElement(react.Modal, { titleAriaId: title, isOpen: isOpen, onDismiss: onDismiss, overlay: { styles: Object.assign({}, overlayStyles(imageOverlayTheme)) }, styles: { main: focusTrapZoneStyle, scrollableContent: scrollableContentStyle }, isDarkOverlay: true },
9016
+ renderHeaderBar(),
9017
+ renderBodyWithLightDismiss())));
8990
9018
  };
8991
9019
 
8992
9020
  // Copyright (c) Microsoft Corporation.
@@ -12348,7 +12376,7 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
12348
12376
  React.createElement(RaisedHandIcon, null)))),
12349
12377
  callingParticipant.isScreenSharing && (React.createElement(react.Icon, { iconName: "ParticipantItemScreenShareStart", className: iconStyles$2, ariaLabel: strings.sharingIconLabel })),
12350
12378
  callingParticipant.isMuted && (React.createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })),
12351
- /* @conditional-compile-remove(spotlight) */ callingParticipant.isSpotlighted && (React.createElement(react.Icon, { iconName: "ParticipantItemSpotlighted", className: iconStyles$2 }))));
12379
+ /* @conditional-compile-remove(spotlight) */ callingParticipant.spotlight && (React.createElement(react.Icon, { iconName: "ParticipantItemSpotlighted", className: iconStyles$2 }))));
12352
12380
  }
12353
12381
  : () => null;
12354
12382
  /* @conditional-compile-remove(raise-hand) */
@@ -12814,10 +12842,11 @@ const useRemoteVideoStreamLifecycleMaintainer = (props) => {
12814
12842
  const useVideoTileContextualMenuProps = (props) => {
12815
12843
  var _a;
12816
12844
  const { remoteParticipant, view, strings, isPinned, onPinParticipant, onUnpinParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString,
12817
- /* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds,
12845
+ /* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds = [],
12818
12846
  /* @conditional-compile-remove(spotlight) */ isSpotlighted,
12819
12847
  /* @conditional-compile-remove(spotlight) */ onStartSpotlight,
12820
- /* @conditional-compile-remove(spotlight) */ onStopSpotlight } = props;
12848
+ /* @conditional-compile-remove(spotlight) */ onStopSpotlight,
12849
+ /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight } = props;
12821
12850
  const scalingMode = React.useMemo(() => {
12822
12851
  var _a;
12823
12852
  return (_a = props.remoteParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.scalingMode;
@@ -12881,7 +12910,7 @@ const useVideoTileContextualMenuProps = (props) => {
12881
12910
  iconName: 'StopSpotlightContextualMenuItem',
12882
12911
  styles: { root: { lineHeight: 0 } }
12883
12912
  },
12884
- onClick: () => onStopSpotlight(remoteParticipant.userId),
12913
+ onClick: () => onStopSpotlight([remoteParticipant.userId]),
12885
12914
  ariaLabel: strings.stopSpotlightVideoTileMenuLabel
12886
12915
  });
12887
12916
  }
@@ -12890,6 +12919,9 @@ const useVideoTileContextualMenuProps = (props) => {
12890
12919
  const startSpotlightMenuLabel = spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0
12891
12920
  ? strings === null || strings === void 0 ? void 0 : strings.addSpotlightVideoTileMenuLabel
12892
12921
  : strings === null || strings === void 0 ? void 0 : strings.startSpotlightVideoTileMenuLabel;
12922
+ const maxSpotlightedParticipantsReached = maxParticipantsToSpotlight
12923
+ ? spotlightedParticipantUserIds.length >= maxParticipantsToSpotlight
12924
+ : false;
12893
12925
  if (onStartSpotlight && remoteParticipant.userId && startSpotlightMenuLabel) {
12894
12926
  items.push({
12895
12927
  key: 'startSpotlight',
@@ -12898,8 +12930,10 @@ const useVideoTileContextualMenuProps = (props) => {
12898
12930
  iconName: 'StartSpotlightContextualMenuItem',
12899
12931
  styles: { root: { lineHeight: 0 } }
12900
12932
  },
12901
- onClick: () => onStartSpotlight(remoteParticipant.userId),
12902
- ariaLabel: startSpotlightMenuLabel
12933
+ onClick: () => onStartSpotlight([remoteParticipant.userId]),
12934
+ ariaLabel: startSpotlightMenuLabel,
12935
+ disabled: maxSpotlightedParticipantsReached,
12936
+ title: maxSpotlightedParticipantsReached ? strings === null || strings === void 0 ? void 0 : strings.spotlightLimitReachedMenuTitle : undefined
12903
12937
  });
12904
12938
  }
12905
12939
  }
@@ -12956,7 +12990,8 @@ const useVideoTileContextualMenuProps = (props) => {
12956
12990
  /* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds,
12957
12991
  /* @conditional-compile-remove(spotlight) */ isSpotlighted,
12958
12992
  /* @conditional-compile-remove(spotlight) */ onStartSpotlight,
12959
- /* @conditional-compile-remove(spotlight) */ onStopSpotlight
12993
+ /* @conditional-compile-remove(spotlight) */ onStopSpotlight,
12994
+ /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight
12960
12995
  ]);
12961
12996
  return contextualMenuProps;
12962
12997
  };
@@ -13722,7 +13757,8 @@ const _RemoteVideoTile = React.memo((props) => {
13722
13757
  /* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds,
13723
13758
  /* @conditional-compile-remove(spotlight) */ isSpotlighted,
13724
13759
  /* @conditional-compile-remove(spotlight) */ onStartSpotlight,
13725
- /* @conditional-compile-remove(spotlight) */ onStopSpotlight, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, strings,
13760
+ /* @conditional-compile-remove(spotlight) */ onStopSpotlight,
13761
+ /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, strings,
13726
13762
  /* @conditional-compile-remove(reaction) */ reactionResources } = props;
13727
13763
  const remoteVideoStreamProps = React.useMemo(() => ({
13728
13764
  isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
@@ -13760,7 +13796,8 @@ const _RemoteVideoTile = React.memo((props) => {
13760
13796
  /* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds,
13761
13797
  /* @conditional-compile-remove(spotlight) */ isSpotlighted,
13762
13798
  /* @conditional-compile-remove(spotlight) */ onStartSpotlight,
13763
- /* @conditional-compile-remove(spotlight) */ onStopSpotlight
13799
+ /* @conditional-compile-remove(spotlight) */ onStopSpotlight,
13800
+ /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight
13764
13801
  });
13765
13802
  const videoTileContextualMenuProps = React.useMemo(() => {
13766
13803
  if (menuKind !== 'contextual' || !contextualMenuProps) {
@@ -16220,6 +16257,8 @@ const VideoGallery = (props) => {
16220
16257
  onStartSpotlight,
16221
16258
  /* @conditional-compile-remove(spotlight) */
16222
16259
  onStopSpotlight,
16260
+ /* @conditional-compile-remove(spotlight) */
16261
+ maxParticipantsToSpotlight,
16223
16262
  /* @conditional-compile-remove(reaction) */
16224
16263
  reactionResources } = props;
16225
16264
  const ids = useIdentifiers();
@@ -16272,7 +16311,7 @@ const VideoGallery = (props) => {
16272
16311
  return onRenderLocalVideoTile(localParticipant);
16273
16312
  }
16274
16313
  /* @conditional-compile-remove(spotlight) */
16275
- const isSpotlighted = spotlightedParticipants === null || spotlightedParticipants === void 0 ? void 0 : spotlightedParticipants.includes(localParticipant.userId);
16314
+ const isSpotlighted = !!localParticipant.spotlight;
16276
16315
  const localVideoTileStyles = react.concatStyleSets(localTileNotInGrid ? floatingLocalVideoTileStyle : {}, {
16277
16316
  root: { borderRadius: theme.effects.roundedCorner4 }
16278
16317
  }, styles === null || styles === void 0 ? void 0 : styles.localVideo);
@@ -16314,8 +16353,6 @@ const VideoGallery = (props) => {
16314
16353
  /* @conditional-compile-remove(gallery-layouts) */
16315
16354
  layout,
16316
16355
  showLocalVideoTileLabel,
16317
- /* @conditional-compile-remove(spotlight) */
16318
- spotlightedParticipants,
16319
16356
  /* @conditional-compile-remove(reaction) */
16320
16357
  reactionResources
16321
16358
  ]);
@@ -16350,7 +16387,7 @@ const VideoGallery = (props) => {
16350
16387
  const selectedScalingMode = remoteVideoStream ? selectedScalingModeState[participant.userId] : undefined;
16351
16388
  let isPinned = pinnedParticipants === null || pinnedParticipants === void 0 ? void 0 : pinnedParticipants.includes(participant.userId);
16352
16389
  /* @conditional-compile-remove(spotlight) */
16353
- const isSpotlighted = spotlightedParticipants === null || spotlightedParticipants === void 0 ? void 0 : spotlightedParticipants.includes(participant.userId);
16390
+ const isSpotlighted = !!participant.spotlight;
16354
16391
  /* @conditional-compile-remove(spotlight) */
16355
16392
  isPinned = isSpotlighted ? false : isPinned;
16356
16393
  const createViewOptions = () => {
@@ -16383,6 +16420,8 @@ const VideoGallery = (props) => {
16383
16420
  onStartSpotlight: onStartSpotlight,
16384
16421
  /* @conditional-compile-remove(spotlight) */
16385
16422
  onStopSpotlight: onStopSpotlight,
16423
+ /* @conditional-compile-remove(spotlight) */
16424
+ maxParticipantsToSpotlight: maxParticipantsToSpotlight,
16386
16425
  /* @conditional-compile-remove(reaction) */
16387
16426
  reactionResources: reactionResources }));
16388
16427
  }, [
@@ -16404,6 +16443,7 @@ const VideoGallery = (props) => {
16404
16443
  /* @conditional-compile-remove(spotlight) */ spotlightedParticipants,
16405
16444
  /* @conditional-compile-remove(spotlight) */ onStartSpotlight,
16406
16445
  /* @conditional-compile-remove(spotlight) */ onStopSpotlight,
16446
+ /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight,
16407
16447
  /* @conditional-compile-remove(reaction) */ reactionResources
16408
16448
  ]);
16409
16449
  const screenShareParticipant = remoteParticipants.find((participant) => { var _a; return (_a = participant.screenShareStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
@@ -19963,12 +20003,12 @@ const memoizedConvertToVideoTileReaction = memoizeOne((reactionState) => {
19963
20003
  */
19964
20004
  const memoizedSpotlight = memoizeOne((spotlightedParticipants, userId) => {
19965
20005
  const spotlightOrder = spotlightedParticipants === null || spotlightedParticipants === void 0 ? void 0 : spotlightedParticipants.find((spotlightedParticipant) => toFlatCommunicationIdentifier(spotlightedParticipant.identifier) === userId);
19966
- return spotlightOrder ? { spotlightOrderPosition: spotlightOrder.order } : undefined;
20006
+ return spotlightOrder ? { spotlightedOrderPosition: spotlightOrder.order } : undefined;
19967
20007
  });
19968
20008
  /* @conditional-compile-remove(spotlight) */
19969
- const convertRemoteParticipantToParticipantListParticipantBetaSpotlight = (userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, isSpotlighted) => {
20009
+ const convertRemoteParticipantToParticipantListParticipantBetaSpotlight = (userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, spotlight) => {
19970
20010
  return Object.assign(Object.assign({}, convertRemoteParticipantToParticipantListParticipant(userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers)), { reaction,
19971
- isSpotlighted });
20011
+ spotlight });
19972
20012
  };
19973
20013
 
19974
20014
  // Copyright (c) Microsoft Corporation.
@@ -20004,7 +20044,9 @@ const _videoGalleryRemoteParticipantsMemo = (remoteParticipants, isHideAttendeeN
20004
20044
  /* @conditional-compile-remove(raise-hand) */
20005
20045
  participant.raisedHand,
20006
20046
  /* @conditional-compile-remove(reaction) */
20007
- remoteParticipantReaction);
20047
+ remoteParticipantReaction,
20048
+ /* @conditional-compile-remove(spotlight) */
20049
+ participant.spotlight);
20008
20050
  }));
20009
20051
  });
20010
20052
  };
@@ -20012,20 +20054,26 @@ const memoizedAllConvertRemoteParticipant = memoizeFnAll((userId, isMuted, isSpe
20012
20054
  /* @conditional-compile-remove(raise-hand) */
20013
20055
  raisedHand, // temp unknown type to build stable
20014
20056
  /* @conditional-compile-remove(reaction) */
20015
- reaction // temp unknown type to build stable
20057
+ reaction, // temp unknown type to build stable
20058
+ /* @conditional-compile-remove(reaction) */
20059
+ spotlight // temp unknown type to build stable
20016
20060
  ) => {
20017
20061
  return convertRemoteParticipantToVideoGalleryRemoteParticipant(userId, isMuted, isSpeaking, videoStreams, state, displayName,
20018
20062
  /* @conditional-compile-remove(raise-hand) */
20019
20063
  raisedHand,
20020
20064
  /* @conditional-compile-remove(reaction) */
20021
- reaction);
20065
+ reaction,
20066
+ /* @conditional-compile-remove(reaction) */
20067
+ spotlight);
20022
20068
  });
20023
20069
  /** @private */
20024
20070
  const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId, isMuted, isSpeaking, videoStreams, state, displayName,
20025
20071
  /* @conditional-compile-remove(raise-hand) */
20026
20072
  raisedHand, // temp unknown type to build stable
20027
20073
  /* @conditional-compile-remove(reaction) */
20028
- reaction // temp unknown type to build stable
20074
+ reaction, // temp unknown type to build stable
20075
+ /* @conditional-compile-remove(reaction) */
20076
+ spotlight // temp unknown type to build stable
20029
20077
  ) => {
20030
20078
  const rawVideoStreamsArray = Object.values(videoStreams);
20031
20079
  let videoStream = undefined;
@@ -20054,7 +20102,9 @@ reaction // temp unknown type to build stable
20054
20102
  /* @conditional-compile-remove(raise-hand) */
20055
20103
  raisedHand: raisedHand,
20056
20104
  /* @conditional-compile-remove(reaction) */
20057
- reaction: reaction
20105
+ reaction: reaction,
20106
+ /* @conditional-compile-remove(reaction) */
20107
+ spotlight: spotlight
20058
20108
  };
20059
20109
  };
20060
20110
  const convertRemoteVideoStreamToVideoGalleryStream = (stream) => {
@@ -20142,7 +20192,9 @@ const videoGallerySelector = reselect.createSelector([
20142
20192
  /* @conditional-compile-remove(reaction) */
20143
20193
  getLocalParticipantReactionState,
20144
20194
  /* @conditional-compile-remove(spotlight) */
20145
- getSpotlightedParticipants
20195
+ getSpotlightedParticipants,
20196
+ /* @conditional-compile-remove(spotlight) */
20197
+ getMaxParticipantsToSpotlight
20146
20198
  ], (screenShareRemoteParticipantId, remoteParticipants, localVideoStreams, isMuted, isScreenSharingOn, displayName, identifier, dominantSpeakers,
20147
20199
  /* @conditional-compile-remove(optimal-video-count) */
20148
20200
  optimalVideoCount,
@@ -20155,7 +20207,9 @@ isHideAttendeeNamesEnabled,
20155
20207
  /* @conditional-compile-remove(reaction) */
20156
20208
  localParticipantReaction,
20157
20209
  /* @conditional-compile-remove(spotlight) */
20158
- spotlightedParticipants) => {
20210
+ spotlightedParticipants,
20211
+ /* @conditional-compile-remove(spotlight) */
20212
+ maxParticipantsToSpotlight) => {
20159
20213
  const screenShareRemoteParticipant = screenShareRemoteParticipantId && remoteParticipants
20160
20214
  ? remoteParticipants[screenShareRemoteParticipantId]
20161
20215
  : undefined;
@@ -20171,7 +20225,9 @@ spotlightedParticipants) => {
20171
20225
  screenShareParticipant: screenShareRemoteParticipant
20172
20226
  ? convertRemoteParticipantToVideoGalleryRemoteParticipant(toFlatCommunicationIdentifier(screenShareRemoteParticipant.identifier), screenShareRemoteParticipant.isMuted, checkIsSpeaking(screenShareRemoteParticipant), screenShareRemoteParticipant.videoStreams, screenShareRemoteParticipant.state, screenShareRemoteParticipant.displayName,
20173
20227
  /* @conditional-compile-remove(raise-hand) */
20174
- screenShareRemoteParticipant.raisedHand)
20228
+ screenShareRemoteParticipant.raisedHand,
20229
+ /* @conditional-compile-remove(spotlight) */
20230
+ screenShareRemoteParticipant.spotlight)
20175
20231
  : undefined,
20176
20232
  localParticipant: memoizeLocalParticipant(identifier, displayName, isMuted, isScreenSharingOn, localVideoStream,
20177
20233
  /* @conditional-compile-remove(rooms) */
@@ -20189,7 +20245,9 @@ spotlightedParticipants) => {
20189
20245
  /* @conditional-compile-remove(optimal-video-count) */
20190
20246
  maxRemoteVideoStreams: optimalVideoCount,
20191
20247
  /* @conditional-compile-remove(spotlight) */
20192
- spotlightedParticipants: spotlightedParticipantIds
20248
+ spotlightedParticipants: spotlightedParticipantIds,
20249
+ /* @conditional-compile-remove(spotlight) */
20250
+ maxParticipantsToSpotlight: maxParticipantsToSpotlight
20193
20251
  };
20194
20252
  });
20195
20253
  const updateUserDisplayNamesTrampoline$2 = (remoteParticipants) => {
@@ -20308,7 +20366,7 @@ spotlightedParticipants) => {
20308
20366
  /* @conditional-compile-remove(reaction) */
20309
20367
  reaction: localParticipantReaction,
20310
20368
  /* @conditional-compile-remove(spotlight) */
20311
- isSpotlighted: memoizedSpotlight(spotlightedParticipants, userId)
20369
+ spotlight: memoizedSpotlight(spotlightedParticipants, userId)
20312
20370
  });
20313
20371
  /* @conditional-compile-remove(total-participant-count) */
20314
20372
  const totalParticipantCount = partitipantCount;
@@ -20469,7 +20527,7 @@ const useSelector$4 = (selector, selectorProps) => {
20469
20527
  * @public
20470
20528
  */
20471
20529
  const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagnostics, getDeviceManager$1, getEnvironmentInfo], (latestErrors, diagnostics, deviceManager, environmentInfo) => {
20472
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
20530
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
20473
20531
  // The order in which the errors are returned is significant: The `ErrorBar` shows errors on the UI in that order.
20474
20532
  // There are several options for the ordering:
20475
20533
  // - Sorted by when the errors happened (latest first / oldest first).
@@ -20579,6 +20637,10 @@ const errorBarSelector$1 = reselect.createSelector([getLatestErrors$1, getDiagno
20579
20637
  else {
20580
20638
  appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'CallAgent.join', 'failedToJoinCallGeneric');
20581
20639
  }
20640
+ /* @conditional-compile-remove(spotlight) */
20641
+ 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)) {
20642
+ appendActiveErrorIfDefined(activeErrorMessages, latestErrors, 'Call.feature', 'startSpotlightWhileMaxParticipantsAreSpotlighted');
20643
+ }
20582
20644
  // We only return the first few errors to avoid filling up the UI with too many `MessageBar`s.
20583
20645
  activeErrorMessages.splice(maxErrorCount$1);
20584
20646
  return { activeErrorMessages: activeErrorMessages };
@@ -23013,7 +23075,7 @@ const CallCompositeIcon = (props) => (React.createElement(react.FontIcon, Object
23013
23075
  */
23014
23076
  const CallWithChatCompositeIcon = (props) => (React.createElement(react.FontIcon, Object.assign({}, props)));
23015
23077
 
23016
- 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",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",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",startSpotlightParticipantListMenuLabel:"Spotlight for everyone",addSpotlightParticipantListMenuLabel:"Add spotlight",stopSpotlightParticipantListMenuLabel:"Stop spotlighting",stopSpotlightOnSelfParticipantListMenuLabel:"Exit spotlight",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",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."}},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",surveyTextboxDefaultText:"Other, please specify",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?",stopSpotlightOnSelfHeading:"Exit spotlight?",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.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"}};var chat$k={chatListHeader:"In this chat",uploadFile:"Upload File"};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",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",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};
23078
+ 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",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",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",startSpotlightParticipantListMenuLabel:"Spotlight for everyone",addSpotlightParticipantListMenuLabel:"Add spotlight",stopSpotlightParticipantListMenuLabel:"Stop spotlighting",stopSpotlightOnSelfParticipantListMenuLabel:"Exit spotlight",spotlightLimitReachedParticipantListMenuTitle:"Spotlight limit reached",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",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."}},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",surveyTextboxDefaultText:"Other, please specify",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?",stopSpotlightOnSelfHeading:"Exit spotlight?",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.",stopSpotlightConfirmButtonLabel:"Stop spotlighting",stopSpotlightOnSelfConfirmButtonLabel:"Exit spotlight",stopSpotlightCancelButtonLabel:"Cancel"}};var chat$k={chatListHeader:"In this chat",uploadFile:"Upload File"};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",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",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};
23017
23079
 
23018
23080
  // Copyright (c) Microsoft Corporation.
23019
23081
  // Licensed under the MIT License.
@@ -25475,12 +25537,12 @@ const createCompositeHandlers = memoizeOne((adapter) => ({
25475
25537
  return yield adapter.submitSurvey(survey);
25476
25538
  }),
25477
25539
  /* @conditional-compile-remove(spotlight) */
25478
- onStartSpotlight: (userId) => __awaiter$j(void 0, void 0, void 0, function* () {
25479
- yield adapter.startSpotlight(userId);
25540
+ onStartSpotlight: (userIds) => __awaiter$j(void 0, void 0, void 0, function* () {
25541
+ yield adapter.startSpotlight(userIds);
25480
25542
  }),
25481
25543
  /* @conditional-compile-remove(spotlight) */
25482
- onStopSpotlight: (userId) => __awaiter$j(void 0, void 0, void 0, function* () {
25483
- yield adapter.stopSpotlight(userId);
25544
+ onStopSpotlight: (userIds) => __awaiter$j(void 0, void 0, void 0, function* () {
25545
+ yield adapter.stopSpotlight(userIds);
25484
25546
  })
25485
25547
  }));
25486
25548
 
@@ -28782,7 +28844,9 @@ const usePeoplePane = (props) => {
28782
28844
  /* @conditional-compile-remove(spotlight) */
28783
28845
  onStopSpotlight,
28784
28846
  /* @conditional-compile-remove(spotlight) */
28785
- ableToSpotlight } = props;
28847
+ ableToSpotlight,
28848
+ /* @conditional-compile-remove(spotlight) */
28849
+ maxParticipantsToSpotlight } = props;
28786
28850
  const closePane = React.useCallback(() => {
28787
28851
  var _a;
28788
28852
  updateSidePaneRenderer(undefined);
@@ -28803,7 +28867,7 @@ const usePeoplePane = (props) => {
28803
28867
  key: 'stop-spotlight',
28804
28868
  text: stopSpotlightMenuText,
28805
28869
  onClick: () => {
28806
- onStopSpotlight === null || onStopSpotlight === void 0 ? void 0 : onStopSpotlight(participantId);
28870
+ onStopSpotlight === null || onStopSpotlight === void 0 ? void 0 : onStopSpotlight([participantId]);
28807
28871
  },
28808
28872
  iconProps: {
28809
28873
  iconName: 'StopSpotlightContextualMenuItem',
@@ -28817,18 +28881,27 @@ const usePeoplePane = (props) => {
28817
28881
  const startSpotlightMenuText = spotlightedParticipantUserIds && spotlightedParticipantUserIds.length > 0
28818
28882
  ? localeStrings.addSpotlightParticipantListMenuLabel
28819
28883
  : localeStrings.startSpotlightParticipantListMenuLabel;
28884
+ const maxSpotlightedParticipantsReached = maxParticipantsToSpotlight
28885
+ ? spotlightedParticipantUserIds
28886
+ ? spotlightedParticipantUserIds.length >= maxParticipantsToSpotlight
28887
+ : false
28888
+ : false;
28820
28889
  if (onStartSpotlight && startSpotlightMenuText && ableToSpotlight) {
28821
28890
  _defaultMenuItems.push({
28822
28891
  key: 'start-spotlight',
28823
28892
  text: startSpotlightMenuText,
28824
28893
  onClick: () => {
28825
- onStartSpotlight === null || onStartSpotlight === void 0 ? void 0 : onStartSpotlight(participantId);
28894
+ onStartSpotlight === null || onStartSpotlight === void 0 ? void 0 : onStartSpotlight([participantId]);
28826
28895
  },
28827
28896
  iconProps: {
28828
28897
  iconName: 'StartSpotlightContextualMenuItem',
28829
28898
  styles: { root: { lineHeight: 0 } }
28830
28899
  },
28831
- ariaLabel: startSpotlightMenuText
28900
+ ariaLabel: startSpotlightMenuText,
28901
+ disabled: maxSpotlightedParticipantsReached,
28902
+ title: maxSpotlightedParticipantsReached
28903
+ ? localeStrings.spotlightLimitReachedParticipantListMenuTitle
28904
+ : undefined
28832
28905
  });
28833
28906
  }
28834
28907
  }
@@ -28844,7 +28917,9 @@ const usePeoplePane = (props) => {
28844
28917
  localeStrings.stopSpotlightOnSelfParticipantListMenuLabel,
28845
28918
  localeStrings.addSpotlightParticipantListMenuLabel,
28846
28919
  localeStrings.startSpotlightParticipantListMenuLabel,
28847
- ableToSpotlight
28920
+ localeStrings.spotlightLimitReachedParticipantListMenuTitle,
28921
+ ableToSpotlight,
28922
+ maxParticipantsToSpotlight
28848
28923
  ]);
28849
28924
  let _onFetchParticipantMenuItems = onFetchParticipantMenuItems;
28850
28925
  /* @conditional-compile-remove(spotlight) */
@@ -29573,8 +29648,11 @@ const useSpotlightCallbacksWithPrompt = (onStartSpotlight, onStopSpotlight, setI
29573
29648
  };
29574
29649
  /* @conditional-compile-remove(spotlight) */
29575
29650
  const getStartSpotlightWithPromptCallback = (myUserId, onStartSpotlight, setIsPromptOpen, setPromptProps, strings) => {
29576
- return (userId) => __awaiter$d(void 0, void 0, void 0, function* () {
29577
- const startSpotlightPromptText = userId === myUserId
29651
+ return (userIds) => __awaiter$d(void 0, void 0, void 0, function* () {
29652
+ if (userIds && userIds.length > 1) {
29653
+ onStartSpotlight(userIds);
29654
+ }
29655
+ const startSpotlightPromptText = userIds === undefined || userIds[0] === myUserId
29578
29656
  ? strings.spotlightPrompt.startSpotlightOnSelfText
29579
29657
  : strings.spotlightPrompt.startSpotlightText;
29580
29658
  setPromptProps({
@@ -29583,7 +29661,7 @@ const getStartSpotlightWithPromptCallback = (myUserId, onStartSpotlight, setIsPr
29583
29661
  confirmButtonLabel: strings.spotlightPrompt.startSpotlightConfirmButtonLabel,
29584
29662
  cancelButtonLabel: strings.spotlightPrompt.startSpotlightCancelButtonLabel,
29585
29663
  onConfirm: () => {
29586
- onStartSpotlight(userId);
29664
+ onStartSpotlight(userIds);
29587
29665
  setIsPromptOpen(false);
29588
29666
  },
29589
29667
  onCancel: () => setIsPromptOpen(false)
@@ -29593,12 +29671,17 @@ const getStartSpotlightWithPromptCallback = (myUserId, onStartSpotlight, setIsPr
29593
29671
  };
29594
29672
  /* @conditional-compile-remove(spotlight) */
29595
29673
  const getStopSpotlightWithPromptCallback = (myUserId, onStopSpotlight, setIsPromptOpen, setPromptProps, strings) => {
29596
- return (userId) => __awaiter$d(void 0, void 0, void 0, function* () {
29597
- const stopSpotlightPromptHeading = userId === myUserId
29674
+ return (userIds) => __awaiter$d(void 0, void 0, void 0, function* () {
29675
+ if (userIds && userIds.length > 1) {
29676
+ onStopSpotlight(userIds);
29677
+ }
29678
+ const stopSpotlightPromptHeading = userIds === undefined || userIds[0] === myUserId
29598
29679
  ? strings.spotlightPrompt.stopSpotlightOnSelfHeading
29599
29680
  : strings.spotlightPrompt.stopSpotlightHeading;
29600
- const stopSpotlightPromptText = userId === myUserId ? strings.spotlightPrompt.stopSpotlightOnSelfText : strings.spotlightPrompt.stopSpotlightText;
29601
- const stopSpotlightPromptConfirmButtonLabel = userId === myUserId
29681
+ const stopSpotlightPromptText = userIds === undefined || userIds[0] === myUserId
29682
+ ? strings.spotlightPrompt.stopSpotlightOnSelfText
29683
+ : strings.spotlightPrompt.stopSpotlightText;
29684
+ const stopSpotlightPromptConfirmButtonLabel = userIds === undefined || userIds[0] === myUserId
29602
29685
  ? strings.spotlightPrompt.stopSpotlightOnSelfConfirmButtonLabel
29603
29686
  : strings.spotlightPrompt.stopSpotlightConfirmButtonLabel;
29604
29687
  setPromptProps({
@@ -29607,7 +29690,7 @@ const getStopSpotlightWithPromptCallback = (myUserId, onStopSpotlight, setIsProm
29607
29690
  confirmButtonLabel: stopSpotlightPromptConfirmButtonLabel,
29608
29691
  cancelButtonLabel: strings.spotlightPrompt.stopSpotlightCancelButtonLabel,
29609
29692
  onConfirm: () => {
29610
- onStopSpotlight(userId);
29693
+ onStopSpotlight(userIds);
29611
29694
  setIsPromptOpen(false);
29612
29695
  },
29613
29696
  onCancel: () => setIsPromptOpen(false)
@@ -29666,14 +29749,15 @@ const CallArrangement = (props) => {
29666
29749
  /* @conditional-compile-remove(spotlight) */
29667
29750
  const { setPromptProps, setIsPromptOpen } = props;
29668
29751
  /* @conditional-compile-remove(spotlight) */
29669
- const { onStartSpotlight, onStopSpotlight, spotlightedParticipants } = videoGalleryProps;
29752
+ const { onStartSpotlight, onStopSpotlight, spotlightedParticipants, maxParticipantsToSpotlight } = videoGalleryProps;
29670
29753
  /* @conditional-compile-remove(spotlight) */
29671
29754
  const { onStartSpotlightWithPrompt, onStopSpotlightWithPrompt } = useSpotlightCallbacksWithPrompt(onStartSpotlight, onStopSpotlight, setIsPromptOpen, setPromptProps);
29672
29755
  const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane(Object.assign(Object.assign({}, peoplePaneProps), {
29673
29756
  /* @conditional-compile-remove(spotlight) */ spotlightedParticipantUserIds: spotlightedParticipants,
29674
29757
  /* @conditional-compile-remove(spotlight) */ onStartSpotlight: onStartSpotlightWithPrompt,
29675
29758
  /* @conditional-compile-remove(spotlight) */ onStopSpotlight: onStopSpotlightWithPrompt,
29676
- /* @conditional-compile-remove(spotlight) */ ableToSpotlight: (_c = (_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.capabilitiesFeature) === null || _c === void 0 ? void 0 : _c.capabilities.spotlightParticipant.isPresent }));
29759
+ /* @conditional-compile-remove(spotlight) */ ableToSpotlight: (_c = (_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.capabilitiesFeature) === null || _c === void 0 ? void 0 : _c.capabilities.spotlightParticipant.isPresent,
29760
+ /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight }));
29677
29761
  const togglePeoplePane = React.useCallback(() => {
29678
29762
  if (isPeoplePaneOpen) {
29679
29763
  closePeoplePane();
@@ -33945,15 +34029,15 @@ class AzureCommunicationCallAdapter {
33945
34029
  });
33946
34030
  }
33947
34031
  /* @conditional-compile-remove(spotlight) */
33948
- startSpotlight(userId) {
34032
+ startSpotlight(userIds) {
33949
34033
  return __awaiter$5(this, void 0, void 0, function* () {
33950
- this.handlers.onStartSpotlight(userId);
34034
+ this.handlers.onStartSpotlight(userIds);
33951
34035
  });
33952
34036
  }
33953
34037
  /* @conditional-compile-remove(spotlight) */
33954
- stopSpotlight(userId) {
34038
+ stopSpotlight(userIds) {
33955
34039
  return __awaiter$5(this, void 0, void 0, function* () {
33956
- this.handlers.onStopSpotlight(userId);
34040
+ this.handlers.onStopSpotlight(userIds);
33957
34041
  });
33958
34042
  }
33959
34043
  getState() {
@@ -33993,7 +34077,7 @@ class AzureCommunicationCallAdapter {
33993
34077
  }
33994
34078
  }
33995
34079
  subscribeCallEvents() {
33996
- var _a, _b, _c, _d, _e, _f, _g, _h;
34080
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
33997
34081
  /* @conditional-compile-remove(calling-sounds) */
33998
34082
  if (this.call) {
33999
34083
  this.callingSoundSubscriber = new CallingSoundSubscriber(this.call, this.getState().targetCallees, this.getState().sounds);
@@ -34010,6 +34094,8 @@ class AzureCommunicationCallAdapter {
34010
34094
  (_g = this.call) === null || _g === void 0 ? void 0 : _g.feature(communicationCalling.Features.Transfer).on('transferRequested', this.transferRequested.bind(this));
34011
34095
  /* @conditional-compile-remove(capabilities) */
34012
34096
  (_h = this.call) === null || _h === void 0 ? void 0 : _h.feature(communicationCalling.Features.Capabilities).on('capabilitiesChanged', this.capabilitiesChanged.bind(this));
34097
+ /* @conditional-compile-remove(spotlight) */
34098
+ (_j = this.call) === null || _j === void 0 ? void 0 : _j.feature(communicationCalling.Features.Spotlight).on('spotlightChanged', this.spotlightChanged.bind(this));
34013
34099
  }
34014
34100
  unsubscribeCallEvents() {
34015
34101
  var _a, _b, _c, _d, _e;
@@ -34121,6 +34207,10 @@ class AzureCommunicationCallAdapter {
34121
34207
  }
34122
34208
  this.emitter.emit('roleChanged');
34123
34209
  }
34210
+ /* @conditional-compile-remove(spotlight) */
34211
+ spotlightChanged(args) {
34212
+ this.emitter.emit('spotlightChanged', args);
34213
+ }
34124
34214
  callIdChanged() {
34125
34215
  var _a;
34126
34216
  ((_a = this.call) === null || _a === void 0 ? void 0 : _a.id) && this.emitter.emit('callIdChanged', { callId: this.call.id });
@@ -34715,15 +34805,15 @@ class CallWithChatBackedCallAdapter {
34715
34805
  });
34716
34806
  }
34717
34807
  /* @conditional-compile-remove(spotlight) */
34718
- startSpotlight(userId) {
34808
+ startSpotlight(userIds) {
34719
34809
  return __awaiter$4(this, void 0, void 0, function* () {
34720
- return this.callWithChatAdapter.startSpotlight(userId);
34810
+ return this.callWithChatAdapter.startSpotlight(userIds);
34721
34811
  });
34722
34812
  }
34723
34813
  /* @conditional-compile-remove(spotlight) */
34724
- stopSpotlight(userId) {
34814
+ stopSpotlight(userIds) {
34725
34815
  return __awaiter$4(this, void 0, void 0, function* () {
34726
- return this.callWithChatAdapter.stopSpotlight(userId);
34816
+ return this.callWithChatAdapter.stopSpotlight(userIds);
34727
34817
  });
34728
34818
  }
34729
34819
  }
@@ -35853,15 +35943,15 @@ class AzureCommunicationCallWithChatAdapter {
35853
35943
  });
35854
35944
  }
35855
35945
  /* @conditional-compile-remove(spotlight) */
35856
- startSpotlight(userId) {
35946
+ startSpotlight(userIds) {
35857
35947
  return __awaiter$2(this, void 0, void 0, function* () {
35858
- return this.callAdapter.startSpotlight(userId);
35948
+ return this.callAdapter.startSpotlight(userIds);
35859
35949
  });
35860
35950
  }
35861
35951
  /* @conditional-compile-remove(spotlight) */
35862
- stopSpotlight(userId) {
35952
+ stopSpotlight(userIds) {
35863
35953
  return __awaiter$2(this, void 0, void 0, function* () {
35864
- return this.callAdapter.stopSpotlight(userId);
35954
+ return this.callAdapter.stopSpotlight(userIds);
35865
35955
  });
35866
35956
  }
35867
35957
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -36725,6 +36815,7 @@ exports.darkTheme = darkTheme;
36725
36815
  exports.fromFlatCommunicationIdentifier = fromFlatCommunicationIdentifier;
36726
36816
  exports.getCallingSelector = getSelector$1;
36727
36817
  exports.getChatSelector = getSelector;
36818
+ exports.imageOverlayTheme = imageOverlayTheme;
36728
36819
  exports.lightTheme = lightTheme;
36729
36820
  exports.onResolveVideoEffectDependency = onResolveVideoEffectDependency;
36730
36821
  exports.onResolveVideoEffectDependencyLazy = onResolveVideoEffectDependencyLazy;