@azure/communication-react 1.24.0-alpha-202501310016 → 1.24.0-alpha-202502010017

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 (81) hide show
  1. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-CAFpQ8Yk.js → ChatMessageComponentAsRichTextEditBox-B69n5di0.js} +2 -2
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-CAFpQ8Yk.js.map → ChatMessageComponentAsRichTextEditBox-B69n5di0.js.map} +1 -1
  3. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-DTWPl1yi.js → RichTextSendBoxWrapper-CAzmoL1D.js} +2 -2
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-DTWPl1yi.js.map → RichTextSendBoxWrapper-CAzmoL1D.js.map} +1 -1
  5. package/dist/dist-cjs/communication-react/{index-B8uYcMR8.js → index--34qf-o2.js} +232 -477
  6. package/dist/dist-cjs/communication-react/index--34qf-o2.js.map +1 -0
  7. package/dist/dist-cjs/communication-react/index.js +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  10. package/dist/dist-esm/communication-react/src/index.d.ts +1 -2
  11. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  12. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +2 -7
  13. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  14. package/dist/dist-esm/react-components/src/components/NotificationStack.js.map +1 -1
  15. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  16. package/dist/dist-esm/react-components/src/components/ParticipantList.js +11 -23
  17. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  18. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +6 -18
  19. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/TogetherModeOverlay.js +24 -40
  21. package/dist/dist-esm/react-components/src/components/TogetherModeOverlay.js.map +1 -1
  22. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js +1 -3
  23. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
  24. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeLayout.d.ts +3 -2
  25. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeLayout.js +4 -72
  26. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeLayout.js.map +1 -1
  27. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeStream.d.ts +0 -1
  28. package/dist/dist-esm/react-components/src/components/VideoGallery/TogetherModeStream.js.map +1 -1
  29. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js +4 -17
  30. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  31. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +1 -20
  32. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  33. package/dist/dist-esm/react-components/src/components/VideoGallery.js +11 -36
  34. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  35. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +1 -2
  36. package/dist/dist-esm/react-components/src/components/VideoTile.js +6 -39
  37. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  38. package/dist/dist-esm/react-components/src/components/styles/TogetherMode.styles.d.ts +10 -1
  39. package/dist/dist-esm/react-components/src/components/styles/TogetherMode.styles.js +34 -5
  40. package/dist/dist-esm/react-components/src/components/styles/TogetherMode.styles.js.map +1 -1
  41. package/dist/dist-esm/react-components/src/components/utils.js +1 -13
  42. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  43. package/dist/dist-esm/react-components/src/index.d.ts +1 -1
  44. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  45. package/dist/dist-esm/react-components/src/theming/icons.js +0 -6
  46. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  47. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  48. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  49. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  50. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -3
  51. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +0 -21
  52. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  53. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  54. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +24 -38
  55. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  56. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js +5 -23
  57. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js.map +1 -1
  58. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.d.ts +1 -2
  59. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +1 -85
  60. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  61. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js +0 -1
  62. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  63. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +0 -8
  64. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  65. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts +16 -2
  66. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +16 -1
  67. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  68. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +2 -2
  69. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +0 -8
  70. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  71. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  72. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +2 -2
  73. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +0 -8
  74. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  75. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +39 -5
  76. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  77. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +38 -8
  78. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  79. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  80. package/package.json +4 -4
  81. package/dist/dist-cjs/communication-react/index-B8uYcMR8.js.map +0 -1
@@ -188,7 +188,7 @@ function getDefaultExportFromCjs (x) {
188
188
  // Copyright (c) Microsoft Corporation.
189
189
  // Licensed under the MIT License.
190
190
  // GENERATED FILE. DO NOT EDIT MANUALLY.
191
- var telemetryVersion = '1.24.0-alpha-202501310016';
191
+ var telemetryVersion = '1.24.0-alpha-202502010017';
192
192
 
193
193
 
194
194
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -8078,13 +8078,9 @@ const customNotificationIconName = {
8078
8078
  breakoutRoomJoined: 'NotificationBarBreakoutRoomJoined',
8079
8079
  /* @conditional-compile-remove(breakout-rooms) */
8080
8080
  breakoutRoomClosingSoon: 'NotificationBarBreakoutRoomClosingSoon',
8081
- /* @conditional-compile-remove(media-access) */
8082
8081
  capabilityTurnVideoOnPresent: 'ControlButtonCameraOff',
8083
- /* @conditional-compile-remove(media-access) */
8084
8082
  capabilityTurnVideoOnAbsent: 'ControlButtonCameraProhibited',
8085
- /* @conditional-compile-remove(media-access) */
8086
8083
  capabilityUnmuteMicPresent: 'ControlButtonMicOff',
8087
- /* @conditional-compile-remove(media-access) */
8088
8084
  capabilityUnmuteMicAbsent: 'ControlButtonMicProhibited',
8089
8085
  /* @conditional-compile-remove(together-mode) */
8090
8086
  togetherModeStarted: 'NotificationBarTogetherModeIcon',
@@ -8141,19 +8137,13 @@ const nullToUndefined = (value) => (value === null ? undefined : value);
8141
8137
  /**
8142
8138
  * @private
8143
8139
  */
8144
- const formatMoreButtonAriaDescription = (displayName, isMuted, isHandRaised, state, isSpeaking, strings,
8145
- /* @conditional-compile-remove(media-access) */
8146
- isMicDisabled,
8147
- /* @conditional-compile-remove(media-access) */
8148
- isCameraDisabled) => {
8140
+ const formatMoreButtonAriaDescription = (displayName, isMuted, isHandRaised, state, isSpeaking, strings, isMicDisabled, isCameraDisabled) => {
8149
8141
  const mutedState = isMuted
8150
8142
  ? strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantMutedStateMutedAriaLabel
8151
8143
  : strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantMutedStateUnmutedAriaLabel;
8152
8144
  const handRaisedState = isHandRaised ? strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantHandRaisedAriaLabel : undefined;
8153
8145
  const isSpeakingState = isSpeaking ? strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantIsSpeakingAriaLabel : undefined;
8154
- /* @conditional-compile-remove(media-access) */
8155
8146
  const micDisabledState = isMicDisabled ? strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantMicDisabledAriaLabel : undefined;
8156
- /* @conditional-compile-remove(media-access) */
8157
8147
  const cameraDisabledState = isCameraDisabled ? strings === null || strings === undefined ? undefined : strings.moreOptionsParticipantCameraDisabledAriaLabel : undefined;
8158
8148
  const description = (strings === null || strings === undefined ? undefined : strings.moreOptionsButtonAriaLabel)
8159
8149
  ? _formatString(strings === null || strings === undefined ? undefined : strings.moreOptionsButtonAriaLabel, {
@@ -8162,9 +8152,7 @@ isCameraDisabled) => {
8162
8152
  isHandRaised: handRaisedState !== null && handRaisedState !== undefined ? handRaisedState : ' ',
8163
8153
  state: state !== null && state !== undefined ? state : ' ',
8164
8154
  isSpeaking: isSpeakingState !== null && isSpeakingState !== undefined ? isSpeakingState : ' ',
8165
- /* @conditional-compile-remove(media-access) */
8166
8155
  micDisabledState: micDisabledState !== null && micDisabledState !== undefined ? micDisabledState : ' ',
8167
- /* @conditional-compile-remove(media-access) */
8168
8156
  cameraDisabledState: cameraDisabledState !== null && cameraDisabledState !== undefined ? cameraDisabledState : ' '
8169
8157
  })
8170
8158
  : '';
@@ -8792,13 +8780,9 @@ const DEFAULT_COMPONENT_ICONS = {
8792
8780
  ControlButtonScreenShareStop: React.createElement(reactIcons.ShareScreenStop20Filled, null),
8793
8781
  ControlButtonRaiseHand: React.createElement(ControlButtonRaiseHandIcon, null),
8794
8782
  ControlButtonLowerHand: React.createElement(ControlButtonLowerHandIcon, null),
8795
- /* @conditional-compile-remove(media-access) */
8796
8783
  ControlButtonMicProhibited: React.createElement(reactIcons.MicProhibited20Filled, null),
8797
- /* @conditional-compile-remove(media-access) */
8798
8784
  ControlButtonMicProhibitedSmall: React.createElement(reactIcons.MicProhibited16Filled, null),
8799
- /* @conditional-compile-remove(media-access) */
8800
8785
  ControlButtonCameraProhibited: React.createElement(reactIcons.VideoProhibited20Filled, null),
8801
- /* @conditional-compile-remove(media-access) */
8802
8786
  ControlButtonCameraProhibitedSmall: React.createElement(reactIcons.VideoProhibited16Filled, null),
8803
8787
  RaiseHandContextualMenuItem: React.createElement(reactIcons.HandRight20Regular, null),
8804
8788
  LowerHandContextualMenuItem: React.createElement(reactIcons.HandRightOff20Regular, null),
@@ -8863,7 +8847,6 @@ const DEFAULT_COMPONENT_ICONS = {
8863
8847
  SendBoxSend: React.createElement(reactIcons.Send20Regular, null),
8864
8848
  SendBoxSendHovered: React.createElement(reactIcons.Send20Filled, null),
8865
8849
  VideoTileMicOff: React.createElement(reactIcons.MicOff16Filled, null),
8866
- /* @conditional-compile-remove(media-access) */
8867
8850
  VideoTileCameraOff: React.createElement(reactIcons.VideoProhibited16Filled, null),
8868
8851
  DialpadBackspace: React.createElement(reactIcons.Backspace20Regular, null),
8869
8852
  /* @conditional-compile-remove(call-readiness) */
@@ -16415,7 +16398,7 @@ class _ErrorBoundary extends React.Component {
16415
16398
  // Copyright (c) Microsoft Corporation.
16416
16399
  // Licensed under the MIT License.
16417
16400
  /* @conditional-compile-remove(rich-text-editor) */
16418
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CAFpQ8Yk.js'); }));
16401
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-B69n5di0.js'); }));
16419
16402
  /**
16420
16403
  * @private
16421
16404
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -16423,7 +16406,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
16423
16406
  *
16424
16407
  * @conditional-compile-remove(rich-text-editor)
16425
16408
  */
16426
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CAFpQ8Yk.js'); });
16409
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-B69n5di0.js'); });
16427
16410
  /**
16428
16411
  * @private
16429
16412
  */
@@ -18008,16 +17991,13 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
18008
17991
  const displayName = formatDisplayName(participant.displayName);
18009
17992
  const callingPalette = theme.callingPalette;
18010
17993
  const isPinned = pinnedParticipants && (pinnedParticipants === null || pinnedParticipants === undefined ? undefined : pinnedParticipants.includes(participant.userId));
18011
- const showRenderIconTrampoline = () => {
18012
- /* @conditional-compile-remove(media-access) */
18013
- return !!((callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.isScreenSharing) ||
18014
- (callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.isMuted) ||
18015
- (callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.raisedHand) ||
18016
- isPinned ||
18017
- !((callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.mediaAccess) ? callingParticipant.mediaAccess.isAudioPermitted : true) ||
18018
- !((callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.mediaAccess) ? callingParticipant.mediaAccess.isVideoPermitted : true));
18019
- };
18020
- const onRenderIcon = showRenderIconTrampoline()
17994
+ const isScreenSharing = callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.isScreenSharing;
17995
+ const isMuted = callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.isMuted;
17996
+ const hasRaisedHand = callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.raisedHand;
17997
+ const isAudioPermitted = (callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.mediaAccess) ? callingParticipant.mediaAccess.isAudioPermitted : true;
17998
+ const isVideoPermitted = (callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.mediaAccess) ? callingParticipant.mediaAccess.isVideoPermitted : true;
17999
+ const shouldRenderParticipantIcon = isScreenSharing || isMuted || hasRaisedHand || isPinned || !isAudioPermitted || !isVideoPermitted;
18000
+ const onRenderIcon = shouldRenderParticipantIcon
18021
18001
  ? () => {
18022
18002
  var _a, _b;
18023
18003
  return (React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: '0.5rem' } },
@@ -18034,13 +18014,10 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
18034
18014
  callingParticipant.isScreenSharing && (React.createElement(react.Icon, { iconName: "ParticipantItemScreenShareStart", className: iconStyles$2, ariaLabel: strings.sharingIconLabel })),
18035
18015
  callingParticipant.spotlight && React.createElement(react.Icon, { iconName: "ParticipantItemSpotlighted", className: iconStyles$2 }),
18036
18016
  isPinned && React.createElement(react.Icon, { iconName: "ParticipantItemPinned", className: iconStyles$2 }),
18037
- /* @conditional-compile-remove(media-access) */ callingParticipant.mediaAccess &&
18038
- !callingParticipant.mediaAccess.isVideoPermitted ? (React.createElement(react.Icon, { iconName: "ControlButtonCameraProhibited", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined,
18039
- /* @conditional-compile-remove(media-access) */ callingParticipant.mediaAccess &&
18040
- !((_b = callingParticipant.mediaAccess) === null || _b === undefined ? undefined : _b.isAudioPermitted) ? (React.createElement(react.Icon, { iconName: "ControlButtonMicProhibited", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined,
18041
- /* @conditional-compile-remove(media-access) */ (callingParticipant.mediaAccess
18042
- ? callingParticipant.mediaAccess.isAudioPermitted
18043
- : true) && callingParticipant.isMuted ? (React.createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined));
18017
+ callingParticipant.mediaAccess && !callingParticipant.mediaAccess.isVideoPermitted ? (React.createElement(react.Icon, { iconName: "ControlButtonCameraProhibited", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined,
18018
+ callingParticipant.mediaAccess && !((_b = callingParticipant.mediaAccess) === null || _b === undefined ? undefined : _b.isAudioPermitted) ? (React.createElement(react.Icon, { iconName: "ControlButtonMicProhibited", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined,
18019
+ (callingParticipant.mediaAccess ? callingParticipant.mediaAccess.isAudioPermitted : true) &&
18020
+ callingParticipant.isMuted ? (React.createElement(react.Icon, { iconName: "ParticipantItemMicOff", className: iconStyles$2, ariaLabel: strings.mutedIconLabel })) : undefined));
18044
18021
  }
18045
18022
  : () => null;
18046
18023
  const onRenderAvatarWithRaiseHand = (callingParticipant === null || callingParticipant === undefined ? undefined : callingParticipant.raisedHand) && onRenderAvatar
@@ -18051,9 +18028,7 @@ const onRenderParticipantDefault = (participant, strings, myUserId, onRenderAvat
18051
18028
  displayName: displayName !== null && displayName !== undefined ? displayName : '',
18052
18029
  connectionState: (_b = formatParticipantStateString(callingParticipant, strings)) !== null && _b !== undefined ? _b : '',
18053
18030
  mutedState: (_c = (callingParticipant.isMuted ? strings === null || strings === undefined ? undefined : strings.mutedIconLabel : undefined)) !== null && _c !== undefined ? _c : '',
18054
- /* @conditional-compile-remove(media-access) */
18055
18031
  micDisabledState: (_e = (((_d = callingParticipant.mediaAccess) === null || _d === undefined ? undefined : _d.isAudioPermitted) === false ? strings === null || strings === undefined ? undefined : strings.micDisabledIconLabel : undefined)) !== null && _e !== undefined ? _e : '',
18056
- /* @conditional-compile-remove(media-access) */
18057
18032
  cameraDisabledState: (_g = (((_f = callingParticipant.mediaAccess) === null || _f === undefined ? undefined : _f.isVideoPermitted) === false ? strings === null || strings === undefined ? undefined : strings.cameraDisabledIconLabel : undefined)) !== null && _g !== undefined ? _g : '',
18058
18033
  sharingState: (_h = (callingParticipant.isScreenSharing ? strings === null || strings === undefined ? undefined : strings.sharingIconLabel : undefined)) !== null && _h !== undefined ? _h : '',
18059
18034
  handRaisedState: (_p = (((_j = callingParticipant.raisedHand) === null || _j === undefined ? undefined : _j.raisedHandOrderPosition)
@@ -18648,26 +18623,15 @@ const callingComponentLogger = logger.createClientLogger('communication-react:ca
18648
18623
  * @private
18649
18624
  */
18650
18625
  const useVideoStreamLifecycleMaintainer = (props) => {
18651
- const { isMirrored, isScreenSharingOn, isStreamAvailable, onCreateStreamView, onDisposeStreamView, renderElementExists, scalingMode, streamId,
18652
- /* @conditional-compile-remove(media-access) */
18653
- isVideoPermitted } = props;
18626
+ const { isMirrored, isScreenSharingOn, isStreamAvailable, onCreateStreamView, onDisposeStreamView, renderElementExists, scalingMode, streamId, isVideoPermitted } = props;
18654
18627
  const [videoStreamViewResult, setVideoStreamViewResult] = React.useState();
18655
- const createStreamViewTrampoline = React.useCallback((isStreamAvailable, renderElementExists,
18656
- /* @conditional-compile-remove(media-access) */ isVideoPermitted) => {
18628
+ React.useEffect(() => {
18657
18629
  var _a;
18658
- /* @conditional-compile-remove(media-access) */
18659
- if (isVideoPermitted === false) {
18660
- return;
18661
- }
18662
- if (isStreamAvailable && !renderElementExists) {
18630
+ if (isVideoPermitted !== false && isStreamAvailable && !renderElementExists) {
18663
18631
  (_a = onCreateStreamView === null || onCreateStreamView === undefined ? undefined : onCreateStreamView({ isMirrored, scalingMode })) === null || _a === undefined ? undefined : _a.then((result) => {
18664
18632
  result && setVideoStreamViewResult(result);
18665
18633
  });
18666
18634
  }
18667
- }, [isMirrored, onCreateStreamView, scalingMode]);
18668
- React.useEffect(() => {
18669
- createStreamViewTrampoline(isStreamAvailable, renderElementExists,
18670
- /* @conditional-compile-remove(media-access) */ isVideoPermitted);
18671
18635
  // Always clean up element to make tile up to date and be able to dispose correctly
18672
18636
  return () => {
18673
18637
  if (renderElementExists) {
@@ -18689,8 +18653,6 @@ const useVideoStreamLifecycleMaintainer = (props) => {
18689
18653
  renderElementExists,
18690
18654
  scalingMode,
18691
18655
  streamId,
18692
- createStreamViewTrampoline,
18693
- /* @conditional-compile-remove(media-access) */
18694
18656
  isVideoPermitted
18695
18657
  ]);
18696
18658
  // The execution order for above useEffect is onCreateRemoteStreamView =>(async time gap) RenderElement generated => element disposed => onDisposeRemoteStreamView
@@ -18746,15 +18708,7 @@ const useRemoteVideoStreamLifecycleMaintainer = (props) => {
18746
18708
  */
18747
18709
  const useVideoTileContextualMenuProps = (props) => {
18748
18710
  var _a;
18749
- const { participant, view, strings, isPinned, onPinParticipant, onUnpinParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, spotlightedParticipantUserIds = [], isSpotlighted, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, myUserId, onMuteParticipant,
18750
- /* @conditional-compile-remove(media-access) */
18751
- onForbidAudio,
18752
- /* @conditional-compile-remove(media-access) */
18753
- onPermitAudio,
18754
- /* @conditional-compile-remove(media-access) */
18755
- onForbidVideo,
18756
- /* @conditional-compile-remove(media-access) */
18757
- onPermitVideo } = props;
18711
+ const { participant, view, strings, isPinned, onPinParticipant, onUnpinParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, spotlightedParticipantUserIds = [], isSpotlighted, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, myUserId, onMuteParticipant, onForbidAudio, onPermitAudio, onForbidVideo, onPermitVideo } = props;
18758
18712
  const scalingMode = React.useMemo(() => {
18759
18713
  var _a;
18760
18714
  return (_a = props.participant.videoStream) === null || _a === undefined ? undefined : _a.scalingMode;
@@ -18776,7 +18730,6 @@ const useVideoTileContextualMenuProps = (props) => {
18776
18730
  disabled: participant.isMuted
18777
18731
  });
18778
18732
  }
18779
- /* @conditional-compile-remove(media-access) */
18780
18733
  if (participant.canAudioBeForbidden &&
18781
18734
  participant.mediaAccess &&
18782
18735
  !participant.mediaAccess.isAudioPermitted &&
@@ -18793,7 +18746,6 @@ const useVideoTileContextualMenuProps = (props) => {
18793
18746
  ariaLabel: strings === null || strings === undefined ? undefined : strings.permitAudioTileMenuLabel
18794
18747
  });
18795
18748
  }
18796
- /* @conditional-compile-remove(media-access) */
18797
18749
  if (participant.canAudioBeForbidden && ((_a = participant.mediaAccess) === null || _a === undefined ? undefined : _a.isAudioPermitted) && onForbidAudio) {
18798
18750
  items.push({
18799
18751
  key: 'forbidAudio',
@@ -18807,7 +18759,6 @@ const useVideoTileContextualMenuProps = (props) => {
18807
18759
  ariaLabel: strings === null || strings === undefined ? undefined : strings.forbidAudioTileMenuLabel
18808
18760
  });
18809
18761
  }
18810
- /* @conditional-compile-remove(media-access) */
18811
18762
  if (participant.canVideoBeForbidden &&
18812
18763
  participant.mediaAccess &&
18813
18764
  !participant.mediaAccess.isVideoPermitted &&
@@ -18824,7 +18775,6 @@ const useVideoTileContextualMenuProps = (props) => {
18824
18775
  ariaLabel: strings === null || strings === undefined ? undefined : strings.permitVideoTileMenuLabel
18825
18776
  });
18826
18777
  }
18827
- /* @conditional-compile-remove(media-access) */
18828
18778
  if (participant.canVideoBeForbidden && ((_b = participant.mediaAccess) === null || _b === undefined ? undefined : _b.isVideoPermitted) && onForbidVideo) {
18829
18779
  items.push({
18830
18780
  key: 'forbidVideo',
@@ -18982,19 +18932,12 @@ const useVideoTileContextualMenuProps = (props) => {
18982
18932
  onStartSpotlight,
18983
18933
  onUpdateScalingMode,
18984
18934
  view,
18985
- /* @conditional-compile-remove(media-access) */
18986
18935
  participant.canAudioBeForbidden,
18987
- /* @conditional-compile-remove(media-access) */
18988
18936
  participant.canVideoBeForbidden,
18989
- /* @conditional-compile-remove(media-access) */
18990
18937
  participant.mediaAccess,
18991
- /* @conditional-compile-remove(media-access) */
18992
18938
  onPermitAudio,
18993
- /* @conditional-compile-remove(media-access) */
18994
18939
  onForbidAudio,
18995
- /* @conditional-compile-remove(media-access) */
18996
18940
  onPermitVideo,
18997
- /* @conditional-compile-remove(media-access) */
18998
18941
  onForbidVideo
18999
18942
  ]);
19000
18943
  return contextualMenuProps;
@@ -19376,18 +19319,10 @@ const videoTileMoreMenuProps = {
19376
19319
  const VideoTileMoreOptionsButton = (props) => {
19377
19320
  const locale = useLocale$1().strings.videoTile;
19378
19321
  const theme = useTheme();
19379
- const { contextualMenu, canShowContextMenuButton, participantDisplayName, participantHandRaised, participantIsSpeaking, participantState, participantIsMuted,
19380
- /* @conditional-compile-remove(media-access) */
19381
- isMicDisabled,
19382
- /* @conditional-compile-remove(media-access) */
19383
- isCameraDisabled } = props;
19322
+ const { contextualMenu, canShowContextMenuButton, participantDisplayName, participantHandRaised, participantIsSpeaking, participantState, participantIsMuted, isMicDisabled, isCameraDisabled } = props;
19384
19323
  const [moreButtonAiraDescription, setMoreButtonAriaDescription] = React.useState('');
19385
19324
  React.useEffect(() => {
19386
- setMoreButtonAriaDescription(formatMoreButtonAriaDescription(participantDisplayName, participantIsMuted, participantHandRaised, participantState, participantIsSpeaking, locale,
19387
- /* @conditional-compile-remove(media-access) */
19388
- isMicDisabled,
19389
- /* @conditional-compile-remove(media-access) */
19390
- isCameraDisabled));
19325
+ setMoreButtonAriaDescription(formatMoreButtonAriaDescription(participantDisplayName, participantIsMuted, participantHandRaised, participantState, participantIsSpeaking, locale, isMicDisabled, isCameraDisabled));
19391
19326
  }, [
19392
19327
  participantDisplayName,
19393
19328
  participantHandRaised,
@@ -19395,9 +19330,7 @@ const VideoTileMoreOptionsButton = (props) => {
19395
19330
  participantIsSpeaking,
19396
19331
  participantState,
19397
19332
  locale,
19398
- /* @conditional-compile-remove(media-access) */
19399
19333
  isMicDisabled,
19400
- /* @conditional-compile-remove(media-access) */
19401
19334
  isCameraDisabled
19402
19335
  ]);
19403
19336
  if (!contextualMenu) {
@@ -19414,9 +19347,7 @@ const VideoTileMoreOptionsButton = (props) => {
19414
19347
  * @public
19415
19348
  */
19416
19349
  const VideoTile = (props) => {
19417
- const { children, displayName, initialsName, isMirrored, isMuted, isSpotlighted, isPinned, onRenderPlaceholder, renderElement, overlay: reactionOverlay, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking, raisedHand, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX, contextualMenu,
19418
- /* @conditional-compile-remove(media-access) */
19419
- mediaAccess } = props;
19350
+ const { children, displayName, initialsName, isMirrored, isMuted, isSpotlighted, isPinned, onRenderPlaceholder, renderElement, overlay: reactionOverlay, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking, raisedHand, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX, contextualMenu, mediaAccess } = props;
19420
19351
  const [isHovered, setIsHovered] = React.useState(false);
19421
19352
  const [isFocused, setIsFocused] = React.useState(false);
19422
19353
  // need to set a default otherwise the resizeObserver will get stuck in an infinite loop.
@@ -19509,17 +19440,7 @@ const VideoTile = (props) => {
19509
19440
  const canShowContextMenuButton = isHovered || isFocused;
19510
19441
  let raisedHandBackgroundColor = '';
19511
19442
  raisedHandBackgroundColor = callingPalette.raiseHandGold;
19512
- const participantMediaAccessIcons = React.useMemo(() => canShowLabel || participantStateString
19513
- ? getMediaAccessIconsTrampoline(showMuteIndicator, isMuted,
19514
- /* @conditional-compile-remove(media-access) */
19515
- mediaAccess)
19516
- : undefined, [
19517
- canShowLabel,
19518
- isMuted,
19519
- /* @conditional-compile-remove(media-access) */ mediaAccess,
19520
- participantStateString,
19521
- showMuteIndicator
19522
- ]);
19443
+ const participantMediaAccessIcons = React.useMemo(() => canShowLabel || participantStateString ? getMediaAccessIcons(showMuteIndicator, isMuted, mediaAccess) : undefined, [canShowLabel, isMuted, mediaAccess, participantStateString, showMuteIndicator]);
19523
19444
  const canShowParticipantIcons = participantMediaAccessIcons || isSpotlighted || isPinned;
19524
19445
  return (React.createElement(react.Stack, Object.assign({ "data-ui-id": ids.videoTile, className: react.mergeStyles(rootStyles, {
19525
19446
  background: theme.palette.neutralLighter,
@@ -19552,11 +19473,7 @@ const VideoTile = (props) => {
19552
19473
  React.createElement(react.Icon, { iconName: "VideoTileSpotlighted" }))),
19553
19474
  isPinned && (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
19554
19475
  React.createElement(react.Icon, { iconName: "VideoTilePinned", className: react.mergeStyles(pinIconStyle) }))))),
19555
- React.createElement(VideoTileMoreOptionsButton, { contextualMenu: contextualMenu, participantDisplayName: displayName, participantHandRaised: !!raisedHand, participantIsMuted: isMuted, participantState: participantStateString, participantIsSpeaking: isSpeaking, canShowContextMenuButton: canShowContextMenuButton,
19556
- /* @conditional-compile-remove(media-access) */
19557
- isMicDisabled: (mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isAudioPermitted) === false,
19558
- /* @conditional-compile-remove(media-access) */
19559
- isCameraDisabled: (mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isVideoPermitted) === false })))),
19476
+ React.createElement(VideoTileMoreOptionsButton, { contextualMenu: contextualMenu, participantDisplayName: displayName, participantHandRaised: !!raisedHand, participantIsMuted: isMuted, participantState: participantStateString, participantIsSpeaking: isSpeaking, canShowContextMenuButton: canShowContextMenuButton, isMicDisabled: (mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isAudioPermitted) === false, isCameraDisabled: (mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isVideoPermitted) === false })))),
19560
19477
  children && (React.createElement(react.Stack, { className: react.mergeStyles(overlayContainerStyles, styles === null || styles === undefined ? undefined : styles.overlayContainer) }, children)),
19561
19478
  raisedHand && (React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: '0.2rem' }, className: raiseHandContainerStyles(theme, !canShowLabel) },
19562
19479
  React.createElement(react.Stack.Item, null,
@@ -19564,21 +19481,16 @@ const VideoTile = (props) => {
19564
19481
  React.createElement(react.Stack.Item, null,
19565
19482
  React.createElement(RaisedHandIcon, null)))))));
19566
19483
  };
19567
- const getMediaAccessIconsTrampoline = (showMuteIndicator, isMuted, mediaAccess) => {
19568
- /* @conditional-compile-remove(media-access) */
19484
+ const getMediaAccessIcons = (showMuteIndicator, isMuted, mediaAccess) => {
19569
19485
  const cameraForbidIcon = mediaAccess && !(mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isVideoPermitted) ? (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
19570
19486
  React.createElement(react.Icon, { iconName: "ControlButtonCameraProhibitedSmall" }))) : undefined;
19571
- /* @conditional-compile-remove(media-access) */
19572
19487
  const micOffIcon = (mediaAccess ? mediaAccess.isAudioPermitted : true) && showMuteIndicator && isMuted ? (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
19573
19488
  React.createElement(react.Icon, { iconName: "VideoTileMicOff" }))) : undefined;
19574
- /* @conditional-compile-remove(media-access) */
19575
19489
  const micForbidIcon = mediaAccess && !(mediaAccess === null || mediaAccess === undefined ? undefined : mediaAccess.isAudioPermitted) && showMuteIndicator ? (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
19576
19490
  React.createElement(react.Icon, { iconName: "ControlButtonMicProhibitedSmall" }))) : undefined;
19577
- /* @conditional-compile-remove(media-access) */
19578
19491
  if (!(cameraForbidIcon || micOffIcon || micForbidIcon)) {
19579
19492
  return undefined;
19580
19493
  }
19581
- /* @conditional-compile-remove(media-access) */
19582
19494
  return (React.createElement(React.Fragment, null,
19583
19495
  cameraForbidIcon,
19584
19496
  micOffIcon,
@@ -20228,6 +20140,11 @@ const REACTION_TRAVEL_HEIGHT = 0.35 * REM_TO_PX_MULTIPLIER;
20228
20140
  */
20229
20141
  const REACTION_MAX_TRAVEL_HEIGHT = 0.5 * REM_TO_PX_MULTIPLIER;
20230
20142
  /* @conditional-compile-remove(together-mode) */
20143
+ /**
20144
+ * The maximum width for displaying the participant's display name.
20145
+ */
20146
+ const MAX_DISPLAY_NAME_WIDTH = 150;
20147
+ /* @conditional-compile-remove(together-mode) */
20231
20148
  /**
20232
20149
  * Sets the seating position for a participant in Together Mode.
20233
20150
  *
@@ -20352,15 +20269,25 @@ const togetherModeParticipantStatusContainer = (backgroundColor, borderRadius) =
20352
20269
  * @private
20353
20270
  */
20354
20271
  const togetherModeParticipantDisplayName = (isParticipantHovered, participantSeatingWidth, color) => {
20355
- const MIN_DISPLAY_NAME_WIDTH = 100;
20272
+ // expands the display name width when participant is hovered or clicked on else make it 70% of the participant seating width
20273
+ const width = isParticipantHovered || participantSeatingWidth * REM_TO_PX_MULTIPLIER > MAX_DISPLAY_NAME_WIDTH
20274
+ ? 'fit-content'
20275
+ : _pxToRem(0.7 * participantSeatingWidth * REM_TO_PX_MULTIPLIER);
20276
+ // For smaller displays, the display name is hidden only participant is hovered or clicked on for mobile view
20277
+ const showDisplayName = isParticipantHovered || participantSeatingWidth * REM_TO_PX_MULTIPLIER > MAX_DISPLAY_NAME_WIDTH
20278
+ ? 'inline-block'
20279
+ : 'none';
20356
20280
  return {
20357
20281
  textOverflow: 'ellipsis',
20358
- flexGrow: 1, // Allow text to grow within available space
20359
- overflow: isParticipantHovered ? 'visible' : 'hidden',
20360
20282
  whiteSpace: 'nowrap',
20361
20283
  textAlign: 'center',
20362
20284
  color,
20363
- display: isParticipantHovered || participantSeatingWidth > MIN_DISPLAY_NAME_WIDTH ? 'inline-block' : 'none' // Completely remove the element when hidden
20285
+ overflow: isParticipantHovered ? 'visible' : 'hidden',
20286
+ width,
20287
+ display: showDisplayName,
20288
+ fontSize: `${_pxToRem(13)}`,
20289
+ lineHeight: `${_pxToRem(20)}`,
20290
+ maxWidth: isParticipantHovered ? 'fit-content' : _pxToRem(0.7 * participantSeatingWidth * REM_TO_PX_MULTIPLIER)
20364
20291
  };
20365
20292
  };
20366
20293
  /* @conditional-compile-remove(together-mode) */
@@ -20369,7 +20296,7 @@ const togetherModeParticipantDisplayName = (isParticipantHovered, participantSea
20369
20296
  */
20370
20297
  const togetherModeParticipantEmojiSpriteStyle = (emojiSize, emojiScaledSize, participantSeatWidth) => {
20371
20298
  const participantSeatWidthInPixel = parseFloat(participantSeatWidth) * REM_TO_PX_MULTIPLIER;
20372
- const emojiScaledSizeInPercent = (emojiScaledSize / participantSeatWidthInPixel) * 100;
20299
+ const emojiScaledSizeInPercent = 100 - (emojiScaledSize / participantSeatWidthInPixel) * 100;
20373
20300
  return {
20374
20301
  width: `${emojiSize}`,
20375
20302
  position: 'absolute',
@@ -20377,6 +20304,20 @@ const togetherModeParticipantEmojiSpriteStyle = (emojiSize, emojiScaledSize, par
20377
20304
  left: `${emojiScaledSizeInPercent / 2}%`
20378
20305
  };
20379
20306
  };
20307
+ /* @conditional-compile-remove(together-mode) */
20308
+ /**
20309
+ * The style for the transition of the participant status container in Together Mode.
20310
+ * @private
20311
+ */
20312
+ const participantStatusTransitionStyle = {
20313
+ position: 'absolute',
20314
+ bottom: `${_pxToRem(2)}`,
20315
+ width: 'fit-content',
20316
+ textAlign: 'center',
20317
+ transform: 'translate(-50%)',
20318
+ transition: 'width 0.3s ease, transform 0.3s ease',
20319
+ left: '50%'
20320
+ };
20380
20321
 
20381
20322
  // Copyright (c) Microsoft Corporation.
20382
20323
  // Licensed under the MIT License.
@@ -20399,7 +20340,7 @@ const TogetherModeOverlay = React.memo((props) => {
20399
20340
  * It updates the togetherModeParticipantStatus state when there's a change in the remoteParticipants, localParticipant,
20400
20341
  * raisedHand, spotlight, isMuted, displayName, or hoveredParticipantID.
20401
20342
  */
20402
- React.useMemo(() => {
20343
+ const updatedParticipantStatus = React.useMemo(() => {
20403
20344
  const allParticipants = [...remoteParticipants, localParticipant];
20404
20345
  const participantsWithVideoAvailable = allParticipants.filter((p) => { var _a; return ((_a = p.videoStream) === null || _a === undefined ? undefined : _a.isAvailable) && togetherModeSeatPositions[p.userId]; });
20405
20346
  const updatedSignals = {};
@@ -20422,16 +20363,13 @@ const TogetherModeOverlay = React.memo((props) => {
20422
20363
  }
20423
20364
  // This is used to remove the participants bounding box from the DOM when they are no longer in the stream
20424
20365
  const participantsNotInTogetherModeStream = Object.keys(togetherModeParticipantStatus).filter((id) => !updatedSignals[id]);
20425
- setTogetherModeParticipantStatus((prevSignals) => {
20426
- const newSignals = Object.assign(Object.assign({}, prevSignals), updatedSignals);
20427
- const newSignalsLength = Object.keys(newSignals).length;
20428
- participantsNotInTogetherModeStream.forEach((id) => {
20429
- delete newSignals[id];
20430
- });
20431
- const hasChanges = Object.keys(newSignals).some((key) => JSON.stringify(newSignals[key]) !== JSON.stringify(prevSignals[key]) ||
20432
- newSignalsLength !== Object.keys(prevSignals).length);
20433
- return hasChanges ? newSignals : prevSignals;
20366
+ const newSignals = Object.assign(Object.assign({}, togetherModeParticipantStatus), updatedSignals);
20367
+ participantsNotInTogetherModeStream.forEach((id) => {
20368
+ delete newSignals[id];
20434
20369
  });
20370
+ const hasSignalingChange = Object.keys(newSignals).some((key) => JSON.stringify(newSignals[key]) !== JSON.stringify(togetherModeParticipantStatus[key]));
20371
+ const updateTogetherModeParticipantStatusState = hasSignalingChange || Object.keys(newSignals).length !== Object.keys(togetherModeParticipantStatus).length;
20372
+ return updateTogetherModeParticipantStatusState ? newSignals : togetherModeParticipantStatus;
20435
20373
  }, [
20436
20374
  remoteParticipants,
20437
20375
  localParticipant,
@@ -20441,29 +20379,24 @@ const TogetherModeOverlay = React.memo((props) => {
20441
20379
  locale.strings.videoGallery.displayNamePlaceholder,
20442
20380
  hoveredParticipantID
20443
20381
  ]);
20444
- /*
20445
- * When a larger participant scene switches to a smaller group in Together Mode,
20446
- * participant video streams remain available because their video is still active,
20447
- * even though they are not visible in the Together Mode stream.
20448
- * Therefore, we rely on the updated seating position values to identify who is included in the Together Mode stream.
20449
- * The Together mode seat position will only contain seat coordinates of participants who are visible in the Together Mode stream.
20450
- */
20451
- React.useMemo(() => {
20452
- const removedVisibleParticipants = Object.keys(togetherModeParticipantStatus).filter((participantId) => !togetherModeSeatPositions[participantId]);
20453
- setTogetherModeParticipantStatus((prevSignals) => {
20454
- const newSignals = Object.assign({}, prevSignals);
20455
- removedVisibleParticipants.forEach((participantId) => {
20456
- delete newSignals[participantId];
20457
- });
20458
- // Trigger a re-render only if changes occurred
20459
- const hasChanges = Object.keys(newSignals).length !== Object.keys(prevSignals).length;
20460
- return hasChanges ? newSignals : prevSignals;
20461
- });
20462
- }, [togetherModeParticipantStatus, togetherModeSeatPositions]);
20382
+ React.useEffect(() => {
20383
+ if (hoveredParticipantID && !updatedParticipantStatus[hoveredParticipantID]) {
20384
+ setHoveredParticipantID('');
20385
+ }
20386
+ setTogetherModeParticipantStatus(updatedParticipantStatus);
20387
+ }, [hoveredParticipantID, updatedParticipantStatus]);
20463
20388
  return (React.createElement("div", { style: { position: 'absolute', width: '100%', height: '100%' } }, Object.values(togetherModeParticipantStatus).map((participantStatus) => {
20464
20389
  var _a, _b;
20465
20390
  return participantStatus.id && (React.createElement("div", { key: participantStatus.id, style: Object.assign({}, getTogetherModeParticipantOverlayStyle(participantStatus.seatPositionStyle)), onMouseEnter: () => setHoveredParticipantID(participantStatus.id), onMouseLeave: () => setHoveredParticipantID('') },
20466
20391
  React.createElement("div", null,
20392
+ participantStatus.showDisplayName && (React.createElement("div", { style: Object.assign({}, participantStatusTransitionStyle) },
20393
+ React.createElement("div", { style: Object.assign({}, togetherModeParticipantStatusContainer(callingPalette.videoTileLabelBackgroundLight, theme.effects.roundedCorner4)) },
20394
+ participantStatus.isHandRaised && React.createElement(RaisedHandIcon, null),
20395
+ participantStatus.showDisplayName && (React.createElement(react.Text, { style: Object.assign({}, togetherModeParticipantDisplayName(hoveredParticipantID === participantStatus.id, parseFloat(participantStatus.seatPositionStyle.seatPosition.width), participantStatus.displayName ? theme.palette.neutralSecondary : 'inherit')) }, participantStatus.displayName)),
20396
+ participantStatus.isMuted && (React.createElement(react.Stack, { className: react.mergeStyles(togetherModeIconStyle) },
20397
+ React.createElement(react.Icon, { iconName: "VideoTileMicOff" }))),
20398
+ participantStatus.isSpotlighted && (React.createElement(react.Stack, { className: react.mergeStyles(togetherModeIconStyle) },
20399
+ React.createElement(react.Icon, { iconName: "VideoTileSpotlighted" })))))),
20467
20400
  ((_a = participantStatus.reaction) === null || _a === undefined ? undefined : _a.reactionType) && (
20468
20401
  // First div - Section that fixes the travel height and applies the movement animation
20469
20402
  // Second div - Responsible for ensuring the sprite emoji is always centered in the participant seat position
@@ -20472,15 +20405,7 @@ const TogetherModeOverlay = React.memo((props) => {
20472
20405
  REACTION_MAX_TRAVEL_HEIGHT, parseFloat(participantStatus.seatPositionStyle.seatPosition.height) * REACTION_TRAVEL_HEIGHT) },
20473
20406
  React.createElement("div", { style: Object.assign({}, togetherModeParticipantEmojiSpriteStyle(emojiSize, participantStatus.scaledSize || 1, participantStatus.seatPositionStyle.seatPosition.width)) },
20474
20407
  React.createElement("div", { style: spriteAnimationStyles(REACTION_NUMBER_OF_ANIMATION_FRAMES, participantStatus.scaledSize || 1, (_b = (participantStatus.reaction &&
20475
- getEmojiResource(participantStatus === null || participantStatus === undefined ? undefined : participantStatus.reaction.reactionType, reactionResources))) !== null && _b !== undefined ? _b : '') })))),
20476
- participantStatus.showDisplayName && (React.createElement("div", null,
20477
- React.createElement("div", { style: Object.assign({}, togetherModeParticipantStatusContainer(callingPalette.videoTileLabelBackgroundLight, theme.effects.roundedCorner4)) },
20478
- participantStatus.isHandRaised && React.createElement(RaisedHandIcon, null),
20479
- participantStatus.showDisplayName && (React.createElement(react.Text, { style: Object.assign({}, togetherModeParticipantDisplayName(hoveredParticipantID === participantStatus.id, parseFloat(participantStatus.seatPositionStyle.seatPosition.width), participantStatus.displayName ? theme.palette.neutralSecondary : 'inherit')) }, participantStatus.displayName)),
20480
- participantStatus.isMuted && (React.createElement(react.Stack, { className: react.mergeStyles(togetherModeIconStyle) },
20481
- React.createElement(react.Icon, { iconName: "VideoTileMicOff" }))),
20482
- participantStatus.isSpotlighted && (React.createElement(react.Stack, { className: react.mergeStyles(togetherModeIconStyle) },
20483
- React.createElement(react.Icon, { iconName: "VideoTileSpotlighted" })))))))));
20408
+ getEmojiResource(participantStatus === null || participantStatus === undefined ? undefined : participantStatus.reaction.reactionType, reactionResources))) !== null && _b !== undefined ? _b : '') })))))));
20484
20409
  })));
20485
20410
  });
20486
20411
 
@@ -20569,15 +20494,7 @@ const MeetingReactionOverlay = (props) => {
20569
20494
  const _RemoteVideoTile = React.memo((props) => {
20570
20495
  var _a, _b;
20571
20496
  const { isAvailable, isReceiving = true, // default to true to prevent any breaking change
20572
- isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, onRenderAvatar, showMuteIndicator, remoteParticipant, participantState, menuKind, isPinned, onPinParticipant, onUnpinParticipant, spotlightedParticipantUserIds, isSpotlighted, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, onMuteParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, strings, reactionResources, streamId,
20573
- /* @conditional-compile-remove(media-access) */
20574
- onForbidAudio,
20575
- /* @conditional-compile-remove(media-access) */
20576
- onPermitAudio,
20577
- /* @conditional-compile-remove(media-access) */
20578
- onForbidVideo,
20579
- /* @conditional-compile-remove(media-access) */
20580
- onPermitVideo } = props;
20497
+ isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, onRenderAvatar, showMuteIndicator, remoteParticipant, participantState, menuKind, isPinned, onPinParticipant, onUnpinParticipant, spotlightedParticipantUserIds, isSpotlighted, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, onMuteParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, strings, reactionResources, streamId, onForbidAudio, onPermitAudio, onForbidVideo, onPermitVideo } = props;
20581
20498
  const remoteVideoStreamProps = React.useMemo(() => ({
20582
20499
  isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === undefined ? undefined : remoteVideoViewOptions.isMirrored,
20583
20500
  isScreenSharingOn,
@@ -20589,7 +20506,6 @@ const _RemoteVideoTile = React.memo((props) => {
20589
20506
  renderElementExists: !!renderElement,
20590
20507
  scalingMode: remoteVideoViewOptions === null || remoteVideoViewOptions === undefined ? undefined : remoteVideoViewOptions.scalingMode,
20591
20508
  streamId,
20592
- /* @conditional-compile-remove(media-access) */
20593
20509
  isVideoPermitted: remoteParticipant.mediaAccess ? remoteParticipant.mediaAccess.isVideoPermitted : true
20594
20510
  }), [
20595
20511
  isAvailable,
@@ -20602,7 +20518,6 @@ const _RemoteVideoTile = React.memo((props) => {
20602
20518
  renderElement,
20603
20519
  userId,
20604
20520
  streamId,
20605
- /* @conditional-compile-remove(media-access) */
20606
20521
  remoteParticipant.mediaAccess
20607
20522
  ]);
20608
20523
  // Handle creating, destroying and updating the video stream as necessary
@@ -20623,10 +20538,10 @@ const _RemoteVideoTile = React.memo((props) => {
20623
20538
  onStopSpotlight,
20624
20539
  maxParticipantsToSpotlight,
20625
20540
  onMuteParticipant,
20626
- /* @conditional-compile-remove(media-access) */ onForbidAudio,
20627
- /* @conditional-compile-remove(media-access) */ onPermitAudio,
20628
- /* @conditional-compile-remove(media-access) */ onForbidVideo,
20629
- /* @conditional-compile-remove(media-access) */ onPermitVideo
20541
+ onForbidAudio,
20542
+ onPermitAudio,
20543
+ onForbidVideo,
20544
+ onPermitVideo
20630
20545
  });
20631
20546
  const videoTileContextualMenuProps = React.useMemo(() => {
20632
20547
  if (menuKind !== 'contextual' || !contextualMenuProps) {
@@ -20671,9 +20586,7 @@ const _RemoteVideoTile = React.memo((props) => {
20671
20586
  return (React.createElement(react.Stack, { tabIndex: menuKind === 'drawer' ? 0 : undefined, onKeyDown: menuKind === 'drawer' ? onKeyDown : undefined, style: remoteVideoTileWrapperStyle },
20672
20587
  React.createElement(VideoTile, Object.assign({ key: userId, userId: userId, initialsName: (_b = formatInitialsName()) !== null && _b !== undefined ? _b : '', renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: remoteParticipant.isMuted, raisedHand: remoteParticipant.raisedHand, isSpeaking: remoteParticipant.isSpeaking, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, showLabel: props.showLabel, alwaysShowLabelBackground: props.alwaysShowLabelBackground, participantState: participantState }, videoTileContextualMenuProps, { isPinned: props.isPinned, onLongTouch: props.onLongTouch
20673
20588
  ? props.onLongTouch
20674
- : () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps$1(contextualMenuProps, () => setDrawerMenuItemProps([]))), isSpotlighted: isSpotlighted, overlay: reactionOverlay,
20675
- /* @conditional-compile-remove(media-access) */
20676
- mediaAccess: remoteParticipant.mediaAccess })),
20589
+ : () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps$1(contextualMenuProps, () => setDrawerMenuItemProps([]))), isSpotlighted: isSpotlighted, overlay: reactionOverlay, mediaAccess: remoteParticipant.mediaAccess })),
20677
20590
  drawerMenuItemProps.length > 0 && (React.createElement(react.Layer, { hostId: props.drawerMenuHostId },
20678
20591
  React.createElement(react.Stack, { styles: drawerMenuWrapperStyles },
20679
20592
  React.createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItemProps([]), items: drawerMenuItemProps, heading: displayName }))))));
@@ -20778,9 +20691,7 @@ const LocalScreenShare = React.memo((props) => {
20778
20691
  ? locale.strings.videoGallery.displayNamePlaceholder
20779
20692
  : localParticipant === null || localParticipant === undefined ? undefined : localParticipant.displayName;
20780
20693
  const loadingMessage = locale.strings.videoGallery.localScreenShareLoadingMessage;
20781
- return (React.createElement(VideoTile, { displayName: displayName, isMuted: localParticipant === null || localParticipant === undefined ? undefined : localParticipant.isMuted, renderElement: renderElement ? (React.createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isAvailable === false ? 'loading' : 'none' })) : undefined, onRenderPlaceholder: () => React.createElement(LoadingSpinner, { loadingMessage: loadingMessage }),
20782
- /* @conditional-compile-remove(media-access) */
20783
- mediaAccess: localParticipant.mediaAccess }));
20694
+ return (React.createElement(VideoTile, { displayName: displayName, isMuted: localParticipant === null || localParticipant === undefined ? undefined : localParticipant.isMuted, renderElement: renderElement ? (React.createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isAvailable === false ? 'loading' : 'none' })) : undefined, onRenderPlaceholder: () => React.createElement(LoadingSpinner, { loadingMessage: loadingMessage }), mediaAccess: localParticipant.mediaAccess }));
20784
20695
  });
20785
20696
 
20786
20697
  // Copyright (c) Microsoft Corporation.
@@ -20885,9 +20796,7 @@ const LocalVideoCameraCycleButton = (props) => {
20885
20796
  * @internal
20886
20797
  */
20887
20798
  const _LocalVideoTile = React.memo((props) => {
20888
- const { isAvailable, isMuted, onCreateLocalStreamView, onDisposeLocalStreamView, localVideoViewOptions, renderElement, userId, showLabel, alwaysShowLabelBackground, displayName, initialsName, onRenderAvatar, showMuteIndicator, styles, showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel, localVideoSelectedDescription, raisedHand, reaction, isSpotlighted, spotlightedParticipantUserIds, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, menuKind, strings, reactionResources, isScreenSharingOn,
20889
- /* @conditional-compile-remove(media-access) */
20890
- mediaAccess } = props;
20799
+ const { isAvailable, isMuted, onCreateLocalStreamView, onDisposeLocalStreamView, localVideoViewOptions, renderElement, userId, showLabel, alwaysShowLabelBackground, displayName, initialsName, onRenderAvatar, showMuteIndicator, styles, showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel, localVideoSelectedDescription, raisedHand, reaction, isSpotlighted, spotlightedParticipantUserIds, onStartSpotlight, onStopSpotlight, maxParticipantsToSpotlight, menuKind, strings, reactionResources, isScreenSharingOn, mediaAccess } = props;
20891
20800
  const theme = useTheme();
20892
20801
  const localVideoStreamProps = React.useMemo(() => ({
20893
20802
  isMirrored: localVideoViewOptions === null || localVideoViewOptions === undefined ? undefined : localVideoViewOptions.isMirrored,
@@ -20896,7 +20805,6 @@ const _LocalVideoTile = React.memo((props) => {
20896
20805
  onDisposeLocalStreamView,
20897
20806
  renderElementExists: !!renderElement,
20898
20807
  scalingMode: localVideoViewOptions === null || localVideoViewOptions === undefined ? undefined : localVideoViewOptions.scalingMode,
20899
- /* @conditional-compile-remove(media-access) */
20900
20808
  isVideoPermitted: mediaAccess ? mediaAccess.isVideoPermitted : true
20901
20809
  }), [
20902
20810
  isAvailable,
@@ -20905,7 +20813,6 @@ const _LocalVideoTile = React.memo((props) => {
20905
20813
  onCreateLocalStreamView,
20906
20814
  onDisposeLocalStreamView,
20907
20815
  renderElement,
20908
- /* @conditional-compile-remove(media-access) */
20909
20816
  mediaAccess
20910
20817
  ]);
20911
20818
  // Handle creating, destroying and updating the video stream as necessary
@@ -20977,8 +20884,7 @@ const _LocalVideoTile = React.memo((props) => {
20977
20884
  React.createElement(react.Spinner, { label: strings === null || strings === undefined ? undefined : strings.waitingScreenText, ariaLive: "assertive", labelPosition: "bottom", role: "alert", styles: loadSpinnerStyles(theme, false) })));
20978
20885
  }, [strings === null || strings === undefined ? undefined : strings.waitingScreenText, theme]);
20979
20886
  return (React.createElement(react.Stack, { "data-ui-id": "local-video-tile", className: react.mergeStyles({ width: '100%', height: '100%' }), onKeyDown: menuKind === 'drawer' ? onKeyDown : undefined },
20980
- React.createElement(VideoTile, Object.assign({ key: userId !== null && userId !== undefined ? userId : 'local-video-tile', userId: userId, renderElement: renderVideoStreamElement, showLabel: showLabel, alwaysShowLabelBackground: alwaysShowLabelBackground, displayName: displayName, initialsName: initialsName, styles: videoTileStyles, onRenderPlaceholder: props.participantsCount === 1 && !isScreenSharingOn ? onRenderAvatarOneParticipant : onRenderAvatar, isMuted: isMuted, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, raisedHand: raisedHand, isSpotlighted: isSpotlighted }, videoTileContextualMenuProps, { onLongTouch: () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps(contextualMenuProps, () => setDrawerMenuItemProps([]))), overlay: videoTileOverlay,
20981
- /* @conditional-compile-remove(media-access) */ mediaAccess: mediaAccess }), drawerMenuItemProps.length > 0 && (React.createElement(react.Layer, { hostId: props.drawerMenuHostId },
20887
+ React.createElement(VideoTile, Object.assign({ key: userId !== null && userId !== undefined ? userId : 'local-video-tile', userId: userId, renderElement: renderVideoStreamElement, showLabel: showLabel, alwaysShowLabelBackground: alwaysShowLabelBackground, displayName: displayName, initialsName: initialsName, styles: videoTileStyles, onRenderPlaceholder: props.participantsCount === 1 && !isScreenSharingOn ? onRenderAvatarOneParticipant : onRenderAvatar, isMuted: isMuted, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, raisedHand: raisedHand, isSpotlighted: isSpotlighted }, videoTileContextualMenuProps, { onLongTouch: () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps(contextualMenuProps, () => setDrawerMenuItemProps([]))), overlay: videoTileOverlay, mediaAccess: mediaAccess }), drawerMenuItemProps.length > 0 && (React.createElement(react.Layer, { hostId: props.drawerMenuHostId },
20982
20888
  React.createElement(react.Stack, { styles: drawerMenuWrapperStyles },
20983
20889
  React.createElement(_DrawerMenu, { onLightDismiss: () => setDrawerMenuItemProps([]), items: drawerMenuItemProps })))))));
20984
20890
  });
@@ -21871,9 +21777,9 @@ const DefaultLayout = (props) => {
21871
21777
  return (React.createElement(react.Stack, { horizontal: overflowGalleryPosition === 'verticalRight', styles: rootLayoutStyle$1, tokens: videoGalleryLayoutGap },
21872
21778
  props.overflowGalleryPosition === 'horizontalTop' ? overflowGallery : React.createElement(React.Fragment, null),
21873
21779
  screenShareComponent ? (screenShareComponent) : (React.createElement(GridLayout, { key: "grid-layout", styles: styles === null || styles === undefined ? undefined : styles.gridLayout }, gridTiles)),
21874
- overflowGalleryTrampoline$4(overflowGallery, props.overflowGalleryPosition)));
21780
+ overflowGalleryTrampoline$3(overflowGallery, props.overflowGalleryPosition)));
21875
21781
  };
21876
- const overflowGalleryTrampoline$4 = (gallery, galleryPosition) => {
21782
+ const overflowGalleryTrampoline$3 = (gallery, galleryPosition) => {
21877
21783
  return galleryPosition !== 'horizontalTop' ? gallery : React.createElement(React.Fragment, null);
21878
21784
  };
21879
21785
 
@@ -22726,9 +22632,9 @@ const FloatingLocalVideoLayout = (props) => {
22726
22632
  React.createElement(react.Stack, { horizontal: overflowGalleryPosition === 'verticalRight', styles: innerLayoutStyle, tokens: videoGalleryLayoutGap },
22727
22633
  props.overflowGalleryPosition === 'horizontalTop' ? overflowGallery : React.createElement(React.Fragment, null),
22728
22634
  screenShareComponent ? (screenShareComponent) : (React.createElement(GridLayout, { key: "grid-layout", styles: styles === null || styles === undefined ? undefined : styles.gridLayout }, gridTiles)),
22729
- overflowGalleryTrampoline$3(overflowGallery, props.overflowGalleryPosition))));
22635
+ overflowGalleryTrampoline$2(overflowGallery, props.overflowGalleryPosition))));
22730
22636
  };
22731
- const overflowGalleryTrampoline$3 = (gallery, galleryPosition) => {
22637
+ const overflowGalleryTrampoline$2 = (gallery, galleryPosition) => {
22732
22638
  return galleryPosition !== 'horizontalTop' ? gallery : React.createElement(React.Fragment, null);
22733
22639
  };
22734
22640
 
@@ -22821,9 +22727,9 @@ const SpeakerVideoLayout = (props) => {
22821
22727
  React.createElement(react.Stack, { horizontal: overflowGalleryPosition === 'verticalRight', styles: innerLayoutStyle, tokens: videoGalleryLayoutGap },
22822
22728
  props.overflowGalleryPosition === 'horizontalTop' ? overflowGallery : React.createElement(React.Fragment, null),
22823
22729
  screenShareComponent ? (screenShareComponent) : (React.createElement(GridLayout, { key: "grid-layout", styles: styles === null || styles === undefined ? undefined : styles.gridLayout }, gridTiles)),
22824
- overflowGalleryTrampoline$2(overflowGallery, props.overflowGalleryPosition))));
22730
+ overflowGalleryTrampoline$1(overflowGallery, props.overflowGalleryPosition))));
22825
22731
  };
22826
- const overflowGalleryTrampoline$2 = (gallery, galleryPosition) => {
22732
+ const overflowGalleryTrampoline$1 = (gallery, galleryPosition) => {
22827
22733
  return galleryPosition !== 'horizontalTop' ? gallery : React.createElement(React.Fragment, null);
22828
22734
  };
22829
22735
 
@@ -22915,9 +22821,9 @@ const LargeGalleryLayout = (props) => {
22915
22821
  return (React.createElement(react.Stack, { horizontal: overflowGalleryPosition === 'verticalRight', styles: rootLayoutStyle$1, tokens: videoGalleryLayoutGap },
22916
22822
  props.overflowGalleryPosition === 'horizontalTop' ? overflowGallery : React.createElement(React.Fragment, null),
22917
22823
  screenShareComponent ? (screenShareComponent) : (React.createElement(GridLayout, { key: "grid-layout", styles: styles === null || styles === undefined ? undefined : styles.gridLayout }, gridTiles)),
22918
- overflowGalleryTrampoline$1(overflowGallery, props.overflowGalleryPosition)));
22824
+ overflowGalleryTrampoline(overflowGallery, props.overflowGalleryPosition)));
22919
22825
  };
22920
- const overflowGalleryTrampoline$1 = (gallery, galleryPosition) => {
22826
+ const overflowGalleryTrampoline = (gallery, galleryPosition) => {
22921
22827
  return galleryPosition !== 'horizontalTop' ? gallery : React.createElement(React.Fragment, null);
22922
22828
  };
22923
22829
  const calculateMaxTilesInLargeGrid = (parentWidth, parentHeight) => {
@@ -22938,61 +22844,8 @@ const calculateMaxTilesInLargeGrid = (parentWidth, parentHeight) => {
22938
22844
  * https://reactjs.org/docs/react-api.html#reactmemo
22939
22845
  */
22940
22846
  const TogetherModeLayout = (props) => {
22941
- const { remoteParticipants = [], dominantSpeakers, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, parentWidth, parentHeight, overflowGalleryPosition = 'horizontalBottom', pinnedParticipantUserIds = [], togetherModeStreamComponent } = props;
22942
- const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;
22943
- const isShort = parentHeight ? isShortHeight(parentHeight) : false;
22944
- const [indexesToRender, setIndexesToRender] = React.useState([]);
22945
- const childrenPerPage = React.useRef(4);
22946
- const { gridParticipants, overflowGalleryParticipants } = useOrganizedParticipants({
22947
- remoteParticipants,
22948
- dominantSpeakers,
22949
- maxGridParticipants: maxRemoteVideoStreams,
22950
- isScreenShareActive: !!screenShareComponent,
22951
- maxOverflowGalleryDominantSpeakers: screenShareComponent
22952
- ? childrenPerPage.current - (pinnedParticipantUserIds.length % childrenPerPage.current)
22953
- : childrenPerPage.current,
22954
- pinnedParticipantUserIds,
22955
- layout: 'floatingLocalVideo'
22956
- });
22957
- const { gridTiles, overflowGalleryTiles } = renderTiles(gridParticipants, onRenderRemoteParticipant, maxRemoteVideoStreams, indexesToRender, overflowGalleryParticipants, dominantSpeakers);
22958
- const layerHostId = reactHooks.useId('layerhost');
22959
- const togetherModeOverFlowGalleryTiles = React.useMemo(() => {
22960
- let newTiles = overflowGalleryTiles;
22961
- if (togetherModeStreamComponent) {
22962
- if (screenShareComponent) {
22963
- newTiles = gridTiles.concat(overflowGalleryTiles);
22964
- }
22965
- }
22966
- return newTiles;
22967
- }, [gridTiles, overflowGalleryTiles, screenShareComponent, togetherModeStreamComponent]);
22968
- const overflowGallery = React.useMemo(() => {
22969
- if (overflowGalleryTiles.length === 0 && !props.screenShareComponent) {
22970
- return null;
22971
- }
22972
- return (React.createElement(OverflowGallery, { isShort: isShort, onFetchTilesToRender: setIndexesToRender, isNarrow: isNarrow, shouldFloatLocalVideo: false, overflowGalleryElements: togetherModeOverFlowGalleryTiles, horizontalGalleryStyles: styles === null || styles === undefined ? undefined : styles.horizontalGallery, verticalGalleryStyles: styles === null || styles === undefined ? undefined : styles.verticalGallery, overflowGalleryPosition: overflowGalleryPosition, onChildrenPerPageChange: (n) => {
22973
- childrenPerPage.current = n;
22974
- }, parentWidth: parentWidth }));
22975
- }, [
22976
- overflowGalleryTiles.length,
22977
- props.screenShareComponent,
22978
- isShort,
22979
- isNarrow,
22980
- togetherModeOverFlowGalleryTiles,
22981
- styles === null || styles === undefined ? undefined : styles.horizontalGallery,
22982
- styles === null || styles === undefined ? undefined : styles.verticalGallery,
22983
- overflowGalleryPosition,
22984
- parentWidth
22985
- ]);
22986
- return screenShareComponent ? (React.createElement(react.Stack, { styles: rootLayoutStyle$1 },
22987
- React.createElement(react.LayerHost, { id: layerHostId, className: react.mergeStyles(layerHostStyle) }),
22988
- React.createElement(react.Stack, { horizontal: overflowGalleryPosition === 'verticalRight', styles: innerLayoutStyle, tokens: videoGalleryLayoutGap },
22989
- props.overflowGalleryPosition === 'horizontalTop' ? overflowGallery : React.createElement(React.Fragment, null),
22990
- screenShareComponent,
22991
- overflowGalleryTrampoline(overflowGallery, props.overflowGalleryPosition)))) : (React.createElement(react.Stack, null, props.togetherModeStreamComponent));
22992
- };
22993
- /* @conditional-compile-remove(together-mode) */
22994
- const overflowGalleryTrampoline = (gallery, galleryPosition) => {
22995
- return galleryPosition !== 'horizontalTop' ? gallery : React.createElement(React.Fragment, null);
22847
+ const { togetherModeStreamComponent } = props;
22848
+ return React.createElement(react.Stack, null, togetherModeStreamComponent);
22996
22849
  };
22997
22850
 
22998
22851
  // Copyright (c) Microsoft Corporation.
@@ -23093,15 +22946,7 @@ const VideoGallery = (props) => {
23093
22946
  /* @conditional-compile-remove(together-mode) */
23094
22947
  togetherModeSeatingCoordinates,
23095
22948
  /* @conditional-compile-remove(together-mode) */
23096
- onDisposeTogetherModeStreamView,
23097
- /* @conditional-compile-remove(media-access) */
23098
- onForbidAudio,
23099
- /* @conditional-compile-remove(media-access) */
23100
- onPermitAudio,
23101
- /* @conditional-compile-remove(media-access) */
23102
- onForbidVideo,
23103
- /* @conditional-compile-remove(media-access) */
23104
- onPermitVideo } = props;
22949
+ onDisposeTogetherModeStreamView, onForbidAudio, onPermitAudio, onForbidVideo, onPermitVideo } = props;
23105
22950
  const ids = useIdentifiers();
23106
22951
  const theme = useTheme();
23107
22952
  const localeStrings = useLocale$1().strings.videoGallery;
@@ -23159,9 +23004,7 @@ const VideoGallery = (props) => {
23159
23004
  return layout === 'default' ? strings.localVideoLabel : isNarrow ? '' : strings.localVideoLabel;
23160
23005
  };
23161
23006
  return (React.createElement(react.Stack, { styles: localVideoTileContainerStyles, key: "local-video-tile-key" },
23162
- React.createElement(_LocalVideoTile, { alwaysShowLabelBackground: videoTilesOptions === null || videoTilesOptions === undefined ? undefined : videoTilesOptions.alwaysShowLabelBackground, userId: localParticipant.userId, onCreateLocalStreamView: onCreateLocalStreamView, onDisposeLocalStreamView: onDisposeLocalStreamView, isAvailable: (_a = localParticipant === null || localParticipant === undefined ? undefined : localParticipant.videoStream) === null || _a === undefined ? undefined : _a.isAvailable, isMuted: localParticipant.isMuted, renderElement: (_b = localParticipant === null || localParticipant === undefined ? undefined : localParticipant.videoStream) === null || _b === undefined ? undefined : _b.renderElement, displayName: showDisplayNameTrampoline(), initialsName: initialsName, localVideoViewOptions: localVideoViewOptions, onRenderAvatar: onRenderAvatar, showLabel: showLocalVideoTileLabel, showMuteIndicator: showMuteIndicator, showCameraSwitcherInLocalPreview: showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps: localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel: strings.localVideoCameraSwitcherLabel, localVideoSelectedDescription: strings.localVideoSelectedDescription, styles: localVideoTileStyles, raisedHand: localParticipant.raisedHand, reaction: localParticipant.reaction, spotlightedParticipantUserIds: spotlightedParticipants, isSpotlighted: isSpotlighted, onStartSpotlight: onStartLocalSpotlight, onStopSpotlight: onStopLocalSpotlight, maxParticipantsToSpotlight: maxParticipantsToSpotlight, menuKind: remoteVideoTileMenu ? (remoteVideoTileMenu.kind === 'drawer' ? 'drawer' : 'contextual') : undefined, drawerMenuHostId: drawerMenuHostId, strings: strings, reactionResources: reactionResources, participantsCount: remoteParticipants.length + 1, isScreenSharingOn: localParticipant.isScreenSharingOn,
23163
- /* @conditional-compile-remove(media-access) */
23164
- mediaAccess: localParticipant.mediaAccess })));
23007
+ React.createElement(_LocalVideoTile, { alwaysShowLabelBackground: videoTilesOptions === null || videoTilesOptions === undefined ? undefined : videoTilesOptions.alwaysShowLabelBackground, userId: localParticipant.userId, onCreateLocalStreamView: onCreateLocalStreamView, onDisposeLocalStreamView: onDisposeLocalStreamView, isAvailable: (_a = localParticipant === null || localParticipant === undefined ? undefined : localParticipant.videoStream) === null || _a === undefined ? undefined : _a.isAvailable, isMuted: localParticipant.isMuted, renderElement: (_b = localParticipant === null || localParticipant === undefined ? undefined : localParticipant.videoStream) === null || _b === undefined ? undefined : _b.renderElement, displayName: showDisplayNameTrampoline(), initialsName: initialsName, localVideoViewOptions: localVideoViewOptions, onRenderAvatar: onRenderAvatar, showLabel: showLocalVideoTileLabel, showMuteIndicator: showMuteIndicator, showCameraSwitcherInLocalPreview: showCameraSwitcherInLocalPreview, localVideoCameraCycleButtonProps: localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel: strings.localVideoCameraSwitcherLabel, localVideoSelectedDescription: strings.localVideoSelectedDescription, styles: localVideoTileStyles, raisedHand: localParticipant.raisedHand, reaction: localParticipant.reaction, spotlightedParticipantUserIds: spotlightedParticipants, isSpotlighted: isSpotlighted, onStartSpotlight: onStartLocalSpotlight, onStopSpotlight: onStopLocalSpotlight, maxParticipantsToSpotlight: maxParticipantsToSpotlight, menuKind: remoteVideoTileMenu ? (remoteVideoTileMenu.kind === 'drawer' ? 'drawer' : 'contextual') : undefined, drawerMenuHostId: drawerMenuHostId, strings: strings, reactionResources: reactionResources, participantsCount: remoteParticipants.length + 1, isScreenSharingOn: localParticipant.isScreenSharingOn, mediaAccess: localParticipant.mediaAccess })));
23165
23008
  }, [
23166
23009
  isNarrow,
23167
23010
  localParticipant,
@@ -23241,15 +23084,7 @@ const VideoGallery = (props) => {
23241
23084
  ? remoteVideoTileMenu.kind === 'drawer'
23242
23085
  ? 'drawer'
23243
23086
  : 'contextual'
23244
- : undefined, drawerMenuHostId: drawerMenuHostId, onPinParticipant: onPinParticipant, onUnpinParticipant: onUnpinParticipant, onUpdateScalingMode: onUpdateScalingMode, isPinned: isPinned, disablePinMenuItem: pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES$1, toggleAnnouncerString: toggleAnnouncerString, spotlightedParticipantUserIds: spotlightedParticipants, isSpotlighted: isSpotlighted, onStartSpotlight: onStartRemoteSpotlight, onStopSpotlight: onStopRemoteSpotlight, maxParticipantsToSpotlight: maxParticipantsToSpotlight, reactionResources: reactionResources, onMuteParticipant: onMuteParticipant,
23245
- /* @conditional-compile-remove(media-access) */
23246
- onForbidAudio: onForbidAudio,
23247
- /* @conditional-compile-remove(media-access) */
23248
- onPermitAudio: onPermitAudio,
23249
- /* @conditional-compile-remove(media-access) */
23250
- onForbidVideo: onForbidVideo,
23251
- /* @conditional-compile-remove(media-access) */
23252
- onPermitVideo: onPermitVideo }));
23087
+ : undefined, drawerMenuHostId: drawerMenuHostId, onPinParticipant: onPinParticipant, onUnpinParticipant: onUnpinParticipant, onUpdateScalingMode: onUpdateScalingMode, isPinned: isPinned, disablePinMenuItem: pinnedParticipants.length >= MAX_PINNED_REMOTE_VIDEO_TILES$1, toggleAnnouncerString: toggleAnnouncerString, spotlightedParticipantUserIds: spotlightedParticipants, isSpotlighted: isSpotlighted, onStartSpotlight: onStartRemoteSpotlight, onStopSpotlight: onStopRemoteSpotlight, maxParticipantsToSpotlight: maxParticipantsToSpotlight, reactionResources: reactionResources, onMuteParticipant: onMuteParticipant, onForbidAudio: onForbidAudio, onPermitAudio: onPermitAudio, onForbidVideo: onForbidVideo, onPermitVideo: onPermitVideo }));
23253
23088
  }, [
23254
23089
  selectedScalingModeState,
23255
23090
  pinnedParticipants,
@@ -23272,13 +23107,9 @@ const VideoGallery = (props) => {
23272
23107
  maxParticipantsToSpotlight,
23273
23108
  reactionResources,
23274
23109
  onMuteParticipant,
23275
- /* @conditional-compile-remove(media-access) */
23276
23110
  onForbidAudio,
23277
- /* @conditional-compile-remove(media-access) */
23278
23111
  onPermitAudio,
23279
- /* @conditional-compile-remove(media-access) */
23280
23112
  onForbidVideo,
23281
- /* @conditional-compile-remove(media-access) */
23282
23113
  onPermitVideo,
23283
23114
  remoteVideoViewOptions
23284
23115
  ]);
@@ -23291,7 +23122,7 @@ const VideoGallery = (props) => {
23291
23122
  ? localScreenShareStreamComponent
23292
23123
  : undefined;
23293
23124
  /* @conditional-compile-remove(together-mode) */
23294
- const togetherModeStreamComponent = React.useMemo(() => (React.createElement(TogetherModeStream, { startTogetherModeEnabled: startTogetherModeEnabled, isTogetherModeActive: isTogetherModeActive, onCreateTogetherModeStreamView: onCreateTogetherModeStreamView, onStartTogetherMode: onStartTogetherMode, onDisposeTogetherModeStreamView: onDisposeTogetherModeStreamView, onSetTogetherModeSceneSize: onSetTogetherModeSceneSize, togetherModeStreams: togetherModeStreams, seatingCoordinates: togetherModeSeatingCoordinates, localParticipant: localParticipant, remoteParticipants: remoteParticipants, reactionResources: reactionResources, screenShareComponent: screenShareComponent, containerWidth: containerWidth, containerHeight: containerHeight })), [
23125
+ const togetherModeStreamComponent = React.useMemo(() => (React.createElement(TogetherModeStream, { startTogetherModeEnabled: startTogetherModeEnabled, isTogetherModeActive: isTogetherModeActive, onCreateTogetherModeStreamView: onCreateTogetherModeStreamView, onStartTogetherMode: onStartTogetherMode, onDisposeTogetherModeStreamView: onDisposeTogetherModeStreamView, onSetTogetherModeSceneSize: onSetTogetherModeSceneSize, togetherModeStreams: togetherModeStreams, seatingCoordinates: togetherModeSeatingCoordinates, localParticipant: localParticipant, remoteParticipants: remoteParticipants, reactionResources: reactionResources, containerWidth: containerWidth, containerHeight: containerHeight })), [
23295
23126
  startTogetherModeEnabled,
23296
23127
  isTogetherModeActive,
23297
23128
  onCreateTogetherModeStreamView,
@@ -23303,7 +23134,6 @@ const VideoGallery = (props) => {
23303
23134
  localParticipant,
23304
23135
  remoteParticipants,
23305
23136
  reactionResources,
23306
- screenShareComponent,
23307
23137
  containerWidth,
23308
23138
  containerHeight
23309
23139
  ]);
@@ -23326,9 +23156,7 @@ const VideoGallery = (props) => {
23326
23156
  pinnedParticipantUserIds: pinnedParticipants,
23327
23157
  overflowGalleryPosition,
23328
23158
  localVideoTileSize,
23329
- spotlightedParticipantUserIds: spotlightedParticipants,
23330
- /* @conditional-compile-remove(together-mode) */
23331
- togetherModeStreamComponent
23159
+ spotlightedParticipantUserIds: spotlightedParticipants
23332
23160
  }), [
23333
23161
  remoteParticipants,
23334
23162
  localParticipant,
@@ -23345,9 +23173,7 @@ const VideoGallery = (props) => {
23345
23173
  pinnedParticipants,
23346
23174
  overflowGalleryPosition,
23347
23175
  localVideoTileSize,
23348
- spotlightedParticipants,
23349
- /* @conditional-compile-remove(together-mode) */
23350
- togetherModeStreamComponent
23176
+ spotlightedParticipants
23351
23177
  ]);
23352
23178
  const videoGalleryLayout = React.useMemo(() => {
23353
23179
  if (screenShareParticipant && layout === 'focusedContent') {
@@ -23366,15 +23192,17 @@ const VideoGallery = (props) => {
23366
23192
  /* @conditional-compile-remove(together-mode) */
23367
23193
  // Teams users can switch to Together mode layout only if they have the capability,
23368
23194
  // while ACS users can do so only if Together mode is enabled.
23369
- if (layout === 'togetherMode' && canSwitchToTogetherModeLayout) {
23370
- return React.createElement(TogetherModeLayout, Object.assign({}, layoutProps));
23195
+ if (!screenShareComponent && layout === 'togetherMode' && canSwitchToTogetherModeLayout) {
23196
+ return React.createElement(TogetherModeLayout, { togetherModeStreamComponent: togetherModeStreamComponent });
23371
23197
  }
23372
23198
  return React.createElement(DefaultLayout, Object.assign({}, layoutProps));
23373
23199
  }, [
23374
23200
  /* @conditional-compile-remove(together-mode) */ canSwitchToTogetherModeLayout,
23375
23201
  layout,
23376
23202
  layoutProps,
23377
- screenShareParticipant
23203
+ screenShareComponent,
23204
+ screenShareParticipant,
23205
+ /* @conditional-compile-remove(together-mode) */ togetherModeStreamComponent
23378
23206
  ]);
23379
23207
  return (React.createElement("div", {
23380
23208
  // We don't assign an drawer menu host id to the VideoGallery when a drawerMenuHostId is assigned from props
@@ -32134,7 +31962,7 @@ const AttachmentDownloadErrorBar = (props) => {
32134
31962
  /**
32135
31963
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
32136
31964
  */
32137
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-DTWPl1yi.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
31965
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CAzmoL1D.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
32138
31966
  /**
32139
31967
  * @private
32140
31968
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -32142,7 +31970,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
32142
31970
  *
32143
31971
  /* @conditional-compile-remove(rich-text-editor-composite-support)
32144
31972
  */
32145
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-DTWPl1yi.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
31973
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CAzmoL1D.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
32146
31974
  /**
32147
31975
  * @private
32148
31976
  */
@@ -33062,7 +32890,6 @@ const memoizeState = memoizeOne((userId, deviceManager, calls, latestErrors, lat
33062
32890
  callAgent: { displayName },
33063
32891
  calls,
33064
32892
  latestErrors,
33065
- /* @conditional-compile-remove(breakout-rooms) */ /* @conditional-compile-remove(media-access) */
33066
32893
  latestNotifications: latestNotifications !== null && latestNotifications !== undefined ? latestNotifications : {},
33067
32894
  alternateCallerId,
33068
32895
  environmentInfo
@@ -33834,11 +33661,6 @@ const getEnvironmentInfo = (state) => state.environmentInfo;
33834
33661
  */
33835
33662
  const getSelectedVideoEffect = (state) => state.selectedVideoBackgroundEffect;
33836
33663
  /** @private */
33837
- const getCaptionsKind = (state) => {
33838
- var _a;
33839
- return (_a = state.call) === null || _a === undefined ? undefined : _a.captionsFeature.captionsKind;
33840
- };
33841
- /** @private */
33842
33664
  const getCaptionsStatus = (state) => {
33843
33665
  var _a;
33844
33666
  return (_a = state.call) === null || _a === undefined ? undefined : _a.captionsFeature.isCaptionsFeatureActive;
@@ -33905,7 +33727,22 @@ const getAlternateCallerId = (state) => state.alternateCallerId;
33905
33727
  const getIsRoomsCall = (state) => state.isRoomsCall;
33906
33728
  /** @private */
33907
33729
  const getVideoBackgroundImages = (state) => state.videoBackgroundImages;
33908
- /* @conditional-compile-remove(media-access) */
33730
+ /* @conditional-compile-remove(together-mode) */
33731
+ /**
33732
+ * @private
33733
+ * Gets the together mode streams state.
33734
+ * @param state - The current state of the call adapter.
33735
+ * @returns The together mode streams state or undefined.
33736
+ */
33737
+ const getIsTogetherModeActive = (state) => { var _a; return (_a = state.call) === null || _a === undefined ? undefined : _a.togetherMode.isActive; };
33738
+ /* @conditional-compile-remove(together-mode) */
33739
+ /**
33740
+ * @private
33741
+ * Gets local participant's user id.
33742
+ * @param state - The current state of the call adapter.
33743
+ * @returns The local participant's user id or undefined.
33744
+ */
33745
+ const getLocalUserId = (state) => state.userId;
33909
33746
  /** @private */
33910
33747
  const getMediaAccessSetting = (state) => { var _a; return (_a = state.call) === null || _a === undefined ? undefined : _a.meetingMediaAccess; };
33911
33748
 
@@ -34102,49 +33939,41 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
34102
33939
  onMuteAllRemoteParticipants: () => __awaiter$q(undefined, undefined, undefined, function* () {
34103
33940
  yield adapter.muteAllRemoteParticipants();
34104
33941
  }),
34105
- /* @conditional-compile-remove(media-access) */
34106
33942
  onForbidAudio: ((_a = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersAudio) === null || _a === undefined ? undefined : _a.isPresent)
34107
33943
  ? (userIds) => __awaiter$q(undefined, undefined, undefined, function* () {
34108
33944
  yield adapter.forbidAudio(userIds);
34109
33945
  })
34110
33946
  : undefined,
34111
- /* @conditional-compile-remove(media-access) */
34112
33947
  onPermitAudio: ((_b = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersAudio) === null || _b === undefined ? undefined : _b.isPresent)
34113
33948
  ? (userIds) => __awaiter$q(undefined, undefined, undefined, function* () {
34114
33949
  yield adapter.permitAudio(userIds);
34115
33950
  })
34116
33951
  : undefined,
34117
- /* @conditional-compile-remove(media-access) */
34118
33952
  onForbidOthersAudio: ((_c = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersAudio) === null || _c === undefined ? undefined : _c.isPresent)
34119
33953
  ? () => __awaiter$q(undefined, undefined, undefined, function* () {
34120
33954
  yield adapter.forbidOthersAudio();
34121
33955
  })
34122
33956
  : undefined,
34123
- /* @conditional-compile-remove(media-access) */
34124
33957
  onPermitOthersAudio: ((_d = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersAudio) === null || _d === undefined ? undefined : _d.isPresent)
34125
33958
  ? () => __awaiter$q(undefined, undefined, undefined, function* () {
34126
33959
  yield adapter.permitOthersAudio();
34127
33960
  })
34128
33961
  : undefined,
34129
- /* @conditional-compile-remove(media-access) */
34130
33962
  onForbidVideo: ((_e = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersVideo) === null || _e === undefined ? undefined : _e.isPresent)
34131
33963
  ? (userIds) => __awaiter$q(undefined, undefined, undefined, function* () {
34132
33964
  yield adapter.forbidVideo(userIds);
34133
33965
  })
34134
33966
  : undefined,
34135
- /* @conditional-compile-remove(media-access) */
34136
33967
  onPermitVideo: ((_f = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersVideo) === null || _f === undefined ? undefined : _f.isPresent)
34137
33968
  ? (userIds) => __awaiter$q(undefined, undefined, undefined, function* () {
34138
33969
  yield adapter.permitVideo(userIds);
34139
33970
  })
34140
33971
  : undefined,
34141
- /* @conditional-compile-remove(media-access) */
34142
33972
  onForbidOthersVideo: ((_g = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersVideo) === null || _g === undefined ? undefined : _g.isPresent)
34143
33973
  ? () => __awaiter$q(undefined, undefined, undefined, function* () {
34144
33974
  yield adapter.forbidOthersVideo();
34145
33975
  })
34146
33976
  : undefined,
34147
- /* @conditional-compile-remove(media-access) */
34148
33977
  onPermitOthersVideo: ((_h = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersVideo) === null || _h === undefined ? undefined : _h.isPresent)
34149
33978
  ? () => __awaiter$q(undefined, undefined, undefined, function* () {
34150
33979
  yield adapter.permitOthersVideo();
@@ -35482,7 +35311,7 @@ var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments,
35482
35311
  * @private
35483
35312
  */
35484
35313
  const DesktopMoreButton = (props) => {
35485
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
35314
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
35486
35315
  const localeStrings = useLocale();
35487
35316
  const holdButtonProps = usePropsFor$1(HoldButton);
35488
35317
  const startCaptionsButtonProps = usePropsFor$1(StartCaptionsButton);
@@ -35501,6 +35330,14 @@ const DesktopMoreButton = (props) => {
35501
35330
  const allowDtmfDialer = showDtmfDialer(callees);
35502
35331
  const isTeamsMeeting = useSelector$1(getIsTeamsMeeting);
35503
35332
  const teamsMeetingCoordinates = useSelector$1(getTeamsMeetingCoordinates);
35333
+ /* @conditional-compile-remove(together-mode) */
35334
+ const isTogetherModeActive = useSelector$1(getIsTogetherModeActive);
35335
+ /* @conditional-compile-remove(together-mode) */
35336
+ const participantCapability = useSelector$1(getCapabilites);
35337
+ /* @conditional-compile-remove(together-mode) */
35338
+ const participantId = useSelector$1(getLocalUserId);
35339
+ /* @conditional-compile-remove(together-mode) */
35340
+ const isTeamsCall = useSelector$1(getIsTeamsCall);
35504
35341
  const [dtmfDialerChecked, setDtmfDialerChecked] = React.useState((_b = props.dtmfDialerPresent) !== null && _b !== undefined ? _b : false);
35505
35342
  const moreButtonStrings = React.useMemo(() => ({
35506
35343
  label: localeStrings.strings.call.moreButtonCallingLabel,
@@ -35798,6 +35635,26 @@ const DesktopMoreButton = (props) => {
35798
35635
  styles: { root: { lineHeight: 0 } }
35799
35636
  }
35800
35637
  };
35638
+ /* @conditional-compile-remove(together-mode) */
35639
+ const togetherModeOption = {
35640
+ key: 'togetherModeSelectionKey',
35641
+ text: localeStrings.strings.call.moreButtonTogetherModeLayoutLabel,
35642
+ canCheck: true,
35643
+ itemProps: {
35644
+ styles: buttonFlyoutIncreasedSizeStyles
35645
+ },
35646
+ isChecked: props.userSetGalleryLayout === 'togetherMode',
35647
+ onClick: () => {
35648
+ props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('togetherMode');
35649
+ setFocusedContentOn(false);
35650
+ },
35651
+ disabled: !(((participantId === null || participantId === undefined ? undefined : participantId.kind) === 'microsoftTeamsUser' && ((_e = participantCapability === null || participantCapability === undefined ? undefined : participantCapability.startTogetherMode) === null || _e === undefined ? undefined : _e.isPresent)) ||
35652
+ isTogetherModeActive),
35653
+ iconProps: {
35654
+ iconName: 'TogetherModeLayout',
35655
+ styles: { root: { lineHeight: 0 } }
35656
+ }
35657
+ };
35801
35658
  /* @conditional-compile-remove(overflow-top-composite) */
35802
35659
  const overflowGalleryOption = {
35803
35660
  key: 'topKey',
@@ -35824,12 +35681,16 @@ const DesktopMoreButton = (props) => {
35824
35681
  }
35825
35682
  };
35826
35683
  /* @conditional-compile-remove(large-gallery) */
35827
- (_f = (_e = galleryOptions.subMenuProps) === null || _e === undefined ? undefined : _e.items) === null || _f === undefined ? undefined : _f.push(largeGalleryOption);
35684
+ (_g = (_f = galleryOptions.subMenuProps) === null || _f === undefined ? undefined : _f.items) === null || _g === undefined ? undefined : _g.push(largeGalleryOption);
35828
35685
  /* @conditional-compile-remove(gallery-layout-composite) */
35829
- (_h = (_g = galleryOptions.subMenuProps) === null || _g === undefined ? undefined : _g.items) === null || _h === undefined ? undefined : _h.push(galleryOption);
35686
+ (_j = (_h = galleryOptions.subMenuProps) === null || _h === undefined ? undefined : _h.items) === null || _j === undefined ? undefined : _j.push(galleryOption);
35830
35687
  /* @conditional-compile-remove(overflow-top-composite) */
35831
- (_k = (_j = galleryOptions.subMenuProps) === null || _j === undefined ? undefined : _j.items) === null || _k === undefined ? undefined : _k.push(overflowGalleryOption);
35832
- if (props.callControls === true || ((_l = props.callControls) === null || _l === undefined ? undefined : _l.galleryControlsButton) !== false) {
35688
+ (_l = (_k = galleryOptions.subMenuProps) === null || _k === undefined ? undefined : _k.items) === null || _l === undefined ? undefined : _l.push(overflowGalleryOption);
35689
+ /* @conditional-compile-remove(together-mode) */
35690
+ if (isTeamsCall || isTeamsMeeting) {
35691
+ (_o = (_m = galleryOptions.subMenuProps) === null || _m === undefined ? undefined : _m.items) === null || _o === undefined ? undefined : _o.push(togetherModeOption);
35692
+ }
35693
+ if (props.callControls === true || ((_p = props.callControls) === null || _p === undefined ? undefined : _p.galleryControlsButton) !== false) {
35833
35694
  moreButtonContextualMenuItems.push(galleryOptions);
35834
35695
  }
35835
35696
  }
@@ -36684,7 +36545,7 @@ const inferCallWithChatControlOptions = (callWithChatControls) => {
36684
36545
  };
36685
36546
  /** @private */
36686
36547
  const MoreDrawer = (props) => {
36687
- var _a, _b, _c, _d, _e, _f, _g;
36548
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
36688
36549
  const theme = react.useTheme();
36689
36550
  const callAdapter = useAdapter();
36690
36551
  const drawerMenuItems = [];
@@ -36698,6 +36559,15 @@ const MoreDrawer = (props) => {
36698
36559
  const allowDtmfDialer = showDtmfDialer(callees, participants, props.dtmfDialerOptions);
36699
36560
  const [dtmfDialerChecked, setDtmfDialerChecked] = React.useState((_a = props.dtmfDialerPresent) !== null && _a !== undefined ? _a : false);
36700
36561
  const raiseHandButtonProps = usePropsFor$1(RaiseHandButton);
36562
+ /* @conditional-compile-remove(together-mode) */
36563
+ const participantCapability = useSelector$1(getCapabilites);
36564
+ /* @conditional-compile-remove(together-mode) */
36565
+ const participantId = useSelector$1(getLocalUserId);
36566
+ /* @conditional-compile-remove(together-mode) */
36567
+ const isTogetherModeActive = useSelector$1(getIsTogetherModeActive);
36568
+ /* @conditional-compile-remove(together-mode) */
36569
+ const isTeamsCall = useSelector$1(getIsTeamsCall);
36570
+ const isTeamsMeeting = getIsTeamsMeeting(callAdapter.getState());
36701
36571
  const onSpeakerItemClick = React.useCallback((_ev, itemKey) => {
36702
36572
  const selected = speakers === null || speakers === undefined ? undefined : speakers.find((speaker) => speaker.id === itemKey);
36703
36573
  if (selected) {
@@ -36715,8 +36585,8 @@ const MoreDrawer = (props) => {
36715
36585
  drawerMenuItems.push({
36716
36586
  itemKey: 'reactions',
36717
36587
  onRendererContent: () => (React.createElement(_ReactionDrawerMenuItem, { onReactionClick: (reaction) => __awaiter$j(undefined, undefined, undefined, function* () {
36718
- var _h;
36719
- (_h = props.onReactionClick) === null || _h === undefined ? undefined : _h.call(props, reaction);
36588
+ var _k;
36589
+ (_k = props.onReactionClick) === null || _k === undefined ? undefined : _k.call(props, reaction);
36720
36590
  onLightDismiss();
36721
36591
  }), reactionResources: props.reactionResources }))
36722
36592
  });
@@ -36853,8 +36723,28 @@ const MoreDrawer = (props) => {
36853
36723
  },
36854
36724
  secondaryIconProps: props.userSetGalleryLayout === 'default' ? { iconName: 'Accept' } : undefined
36855
36725
  };
36726
+ /* @conditional-compile-remove(together-mode) */
36727
+ const togetherModeOption = {
36728
+ itemKey: 'togetherModeSelectionKey',
36729
+ text: localeStrings.strings.call.moreButtonTogetherModeLayoutLabel,
36730
+ onItemClick: () => {
36731
+ props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('togetherMode');
36732
+ onLightDismiss();
36733
+ },
36734
+ iconProps: {
36735
+ iconName: 'TogetherModeLayout',
36736
+ styles: { root: { lineHeight: 0 } }
36737
+ },
36738
+ disabled: !(((participantId === null || participantId === undefined ? undefined : participantId.kind) === 'microsoftTeamsUser' && ((_d = participantCapability === null || participantCapability === undefined ? undefined : participantCapability.startTogetherMode) === null || _d === undefined ? undefined : _d.isPresent)) ||
36739
+ isTogetherModeActive),
36740
+ secondaryIconProps: props.userSetGalleryLayout === 'default' ? { iconName: 'Accept' } : undefined
36741
+ };
36856
36742
  /* @conditional-compile-remove(gallery-layout-composite) */
36857
- (_d = galleryLayoutOptions.subMenuProps) === null || _d === undefined ? undefined : _d.push(galleryOption);
36743
+ (_e = galleryLayoutOptions.subMenuProps) === null || _e === undefined ? undefined : _e.push(galleryOption);
36744
+ /* @conditional-compile-remove(together-mode) */
36745
+ if (isTeamsCall || isTeamsMeeting) {
36746
+ (_f = galleryLayoutOptions.subMenuProps) === null || _f === undefined ? undefined : _f.push(togetherModeOption);
36747
+ }
36858
36748
  if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === undefined ? undefined : drawerSelectionOptions.galleryControlsButton)) {
36859
36749
  drawerMenuItems.push(galleryLayoutOptions);
36860
36750
  }
@@ -36880,7 +36770,7 @@ const MoreDrawer = (props) => {
36880
36770
  iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } }
36881
36771
  });
36882
36772
  }
36883
- const role = (_e = callAdapter.getState().call) === null || _e === undefined ? undefined : _e.role;
36773
+ const role = (_g = callAdapter.getState().call) === null || _g === undefined ? undefined : _g.role;
36884
36774
  const hideRaiseHandButtonInRoomsCall = callAdapter.getState().isRoomsCall && role && ['Consumer', 'Unknown'].includes(role);
36885
36775
  if (drawerSelectionOptions !== false &&
36886
36776
  isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === undefined ? undefined : drawerSelectionOptions.raiseHandButton) &&
@@ -36904,7 +36794,6 @@ const MoreDrawer = (props) => {
36904
36794
  }
36905
36795
  });
36906
36796
  }
36907
- const isTeamsMeeting = getIsTeamsMeeting(callAdapter.getState());
36908
36797
  const teamsMeetingCoordinates = getTeamsMeetingCoordinates(callAdapter.getState());
36909
36798
  if (drawerSelectionOptions !== false &&
36910
36799
  isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === undefined ? undefined : drawerSelectionOptions.teamsMeetingPhoneCallButton) &&
@@ -36933,8 +36822,8 @@ const MoreDrawer = (props) => {
36933
36822
  const startCaptionsButtonProps = usePropsFor$1(StartCaptionsButton);
36934
36823
  const [isSpokenLanguageDrawerOpen, setIsSpokenLanguageDrawerOpen] = React.useState(false);
36935
36824
  const [isCaptionLanguageDrawerOpen, setIsCaptionLanguageDrawerOpen] = React.useState(false);
36936
- const [currentSpokenLanguage, setCurrentSpokenLanguage] = React.useState((_f = captionSettingsProp.currentSpokenLanguage) !== null && _f !== undefined ? _f : 'en-us');
36937
- const [currentCaptionLanguage, setCurrentCaptionLanguage] = React.useState((_g = captionSettingsProp.currentCaptionLanguage) !== null && _g !== undefined ? _g : _spokenLanguageToCaptionLanguage[currentSpokenLanguage]);
36825
+ const [currentSpokenLanguage, setCurrentSpokenLanguage] = React.useState((_h = captionSettingsProp.currentSpokenLanguage) !== null && _h !== undefined ? _h : 'en-us');
36826
+ const [currentCaptionLanguage, setCurrentCaptionLanguage] = React.useState((_j = captionSettingsProp.currentCaptionLanguage) !== null && _j !== undefined ? _j : _spokenLanguageToCaptionLanguage[currentSpokenLanguage]);
36938
36827
  const onToggleChange = React.useCallback(() => __awaiter$j(undefined, undefined, undefined, function* () {
36939
36828
  if (!captionSettingsProp.isCaptionsFeatureActive) {
36940
36829
  yield startCaptionsButtonProps.onStartCaptions({
@@ -37918,25 +37807,7 @@ const canRemoveParticipants = (role) => {
37918
37807
  const PEOPLE_SIDE_PANE_ID = 'people';
37919
37808
  /** @private */
37920
37809
  const usePeoplePane = (props) => {
37921
- const { updateSidePaneRenderer, inviteLink, onFetchAvatarPersonaData, onFetchParticipantMenuItems, setDrawerMenuItems, mobileView, peopleButtonRef, setParticipantActioned, spotlightedParticipantUserIds, onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, onStopAllSpotlight, maxParticipantsToSpotlight, onMuteParticipant, pinnedParticipants, onPinParticipant, onUnpinParticipant, disablePinMenuItem, onMuteAllRemoteParticipants,
37922
- /* @conditional-compile-remove(media-access) */
37923
- onForbidAudio,
37924
- /* @conditional-compile-remove(media-access) */
37925
- onPermitAudio,
37926
- /* @conditional-compile-remove(media-access) */
37927
- onForbidOthersAudio,
37928
- /* @conditional-compile-remove(media-access) */
37929
- onPermitOthersAudio,
37930
- /* @conditional-compile-remove(media-access) */
37931
- onForbidVideo,
37932
- /* @conditional-compile-remove(media-access) */
37933
- onPermitVideo,
37934
- /* @conditional-compile-remove(media-access) */
37935
- onForbidOthersVideo,
37936
- /* @conditional-compile-remove(media-access) */
37937
- onPermitOthersVideo,
37938
- /* @conditional-compile-remove(media-access) */
37939
- meetingMediaAccess, sidePaneDismissButtonRef, chatButtonPresent } = props;
37810
+ const { updateSidePaneRenderer, inviteLink, onFetchAvatarPersonaData, onFetchParticipantMenuItems, setDrawerMenuItems, mobileView, peopleButtonRef, setParticipantActioned, spotlightedParticipantUserIds, onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, onStopAllSpotlight, maxParticipantsToSpotlight, onMuteParticipant, pinnedParticipants, onPinParticipant, onUnpinParticipant, disablePinMenuItem, onMuteAllRemoteParticipants, onForbidAudio, onPermitAudio, onForbidOthersAudio, onPermitOthersAudio, onForbidVideo, onPermitVideo, onForbidOthersVideo, onPermitOthersVideo, meetingMediaAccess, sidePaneDismissButtonRef, chatButtonPresent } = props;
37940
37811
  const closePane = React.useCallback(() => {
37941
37812
  var _a;
37942
37813
  updateSidePaneRenderer(undefined);
@@ -37960,30 +37831,22 @@ const usePeoplePane = (props) => {
37960
37831
  onMuteAllRemoteParticipants && onMuteAllRemoteParticipants();
37961
37832
  setShowMuteAllPrompt(false);
37962
37833
  }, [onMuteAllRemoteParticipants, setShowMuteAllPrompt]);
37963
- /* @conditional-compile-remove(media-access) */
37964
37834
  const [showForbidOthersAudioPrompt, setShowForbidOthersAudioPrompt] = React.useState(false);
37965
- /* @conditional-compile-remove(media-access) */
37966
37835
  const [showPermitOthersAudioPrompt, setShowPermitOthersAudioPrompt] = React.useState(false);
37967
- /* @conditional-compile-remove(media-access) */
37968
37836
  const [showForbidOthersVideoPrompt, setShowForbidOthersVideoPrompt] = React.useState(false);
37969
- /* @conditional-compile-remove(media-access) */
37970
37837
  const [showPermitOthersVideoPrompt, setShowPermitOthersVideoPrompt] = React.useState(false);
37971
- /* @conditional-compile-remove(media-access) */
37972
37838
  const onForbidAllAttendeesPromptConfirm = React.useCallback(() => {
37973
37839
  onForbidOthersAudio && onForbidOthersAudio();
37974
37840
  setShowForbidOthersAudioPrompt(false);
37975
37841
  }, [onForbidOthersAudio, setShowForbidOthersAudioPrompt]);
37976
- /* @conditional-compile-remove(media-access) */
37977
37842
  const onPermitAllAttendeesPromptConfirm = React.useCallback(() => {
37978
37843
  onPermitOthersAudio && onPermitOthersAudio();
37979
37844
  setShowPermitOthersAudioPrompt(false);
37980
37845
  }, [onPermitOthersAudio, setShowPermitOthersAudioPrompt]);
37981
- /* @conditional-compile-remove(media-access) */
37982
37846
  const onForbidOthersVideoPromptConfirm = React.useCallback(() => {
37983
37847
  onForbidOthersVideo && onForbidOthersVideo();
37984
37848
  setShowForbidOthersVideoPrompt(false);
37985
37849
  }, [onForbidOthersVideo, setShowForbidOthersVideoPrompt]);
37986
- /* @conditional-compile-remove(media-access) */
37987
37850
  const onPermitOthersVideoPromptConfirm = React.useCallback(() => {
37988
37851
  onPermitOthersVideo && onPermitOthersVideo();
37989
37852
  setShowPermitOthersVideoPrompt(false);
@@ -38015,9 +37878,7 @@ const usePeoplePane = (props) => {
38015
37878
  disabled: isAllMuted
38016
37879
  });
38017
37880
  }
38018
- /* @conditional-compile-remove(media-access) */
38019
37881
  let hasAttendee = false;
38020
- /* @conditional-compile-remove(media-access) */
38021
37882
  if (remoteParticipants) {
38022
37883
  for (const participant of Object.values(remoteParticipants)) {
38023
37884
  if (participant.role && participant.role === 'Attendee') {
@@ -38026,11 +37887,8 @@ const usePeoplePane = (props) => {
38026
37887
  }
38027
37888
  }
38028
37889
  }
38029
- /* @conditional-compile-remove(media-access) */
38030
37890
  const isMeetingAudioPermitted = meetingMediaAccess ? meetingMediaAccess.isAudioPermitted : true;
38031
- /* @conditional-compile-remove(media-access) */
38032
37891
  const isMeetingVideoPermitted = meetingMediaAccess ? meetingMediaAccess.isVideoPermitted : true;
38033
- /* @conditional-compile-remove(media-access) */
38034
37892
  if (onForbidOthersAudio && remoteParticipants) {
38035
37893
  hasAttendee &&
38036
37894
  isMeetingAudioPermitted &&
@@ -38049,7 +37907,6 @@ const usePeoplePane = (props) => {
38049
37907
  disabled: !hasAttendee
38050
37908
  });
38051
37909
  }
38052
- /* @conditional-compile-remove(media-access) */
38053
37910
  if (onPermitOthersAudio && remoteParticipants) {
38054
37911
  hasAttendee &&
38055
37912
  !isMeetingAudioPermitted &&
@@ -38068,7 +37925,6 @@ const usePeoplePane = (props) => {
38068
37925
  disabled: !hasAttendee
38069
37926
  });
38070
37927
  }
38071
- /* @conditional-compile-remove(media-access) */
38072
37928
  if (onForbidOthersVideo && remoteParticipants) {
38073
37929
  hasAttendee &&
38074
37930
  isMeetingVideoPermitted &&
@@ -38087,7 +37943,6 @@ const usePeoplePane = (props) => {
38087
37943
  disabled: !hasAttendee
38088
37944
  });
38089
37945
  }
38090
- /* @conditional-compile-remove(media-access) */
38091
37946
  if (onPermitOthersVideo && remoteParticipants) {
38092
37947
  hasAttendee &&
38093
37948
  !isMeetingVideoPermitted &&
@@ -38123,26 +37978,17 @@ const usePeoplePane = (props) => {
38123
37978
  }, [
38124
37979
  onMuteAllRemoteParticipants,
38125
37980
  remoteParticipants,
38126
- /* @conditional-compile-remove(media-access) */
38127
37981
  meetingMediaAccess,
38128
- /* @conditional-compile-remove(media-access) */
38129
37982
  onForbidOthersAudio,
38130
- /* @conditional-compile-remove(media-access) */
38131
37983
  onPermitOthersAudio,
38132
- /* @conditional-compile-remove(media-access) */
38133
37984
  onForbidOthersVideo,
38134
- /* @conditional-compile-remove(media-access) */
38135
37985
  onPermitOthersVideo,
38136
37986
  onStopAllSpotlight,
38137
37987
  spotlightedParticipantUserIds,
38138
37988
  localeStrings.muteAllMenuLabel,
38139
- /* @conditional-compile-remove(media-access) */
38140
37989
  localeStrings.forbidOthersAudioMenuLabel,
38141
- /* @conditional-compile-remove(media-access) */
38142
37990
  localeStrings.permitOthersAudioMenuLabel,
38143
- /* @conditional-compile-remove(media-access) */
38144
37991
  localeStrings.forbidOthersVideoMenuLabel,
38145
- /* @conditional-compile-remove(media-access) */
38146
37992
  localeStrings.permitOthersVideoMenuLabel,
38147
37993
  localeStrings.stopAllSpotlightMenuLabel
38148
37994
  ]);
@@ -38180,9 +38026,7 @@ const usePeoplePane = (props) => {
38180
38026
  disabled: isMuted
38181
38027
  });
38182
38028
  }
38183
- /* @conditional-compile-remove(media-access) */
38184
38029
  const remoteParticipant = remoteParticipants === null || remoteParticipants === undefined ? undefined : remoteParticipants[participantId];
38185
- /* @conditional-compile-remove(media-access) */
38186
38030
  if ((remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.mediaAccess) &&
38187
38031
  !remoteParticipant.mediaAccess.isAudioPermitted &&
38188
38032
  (remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.role) === 'Attendee' &&
@@ -38201,7 +38045,6 @@ const usePeoplePane = (props) => {
38201
38045
  ariaLabel: localeStrings.permitAudioMenuLabel
38202
38046
  });
38203
38047
  }
38204
- /* @conditional-compile-remove(media-access) */
38205
38048
  if (((_a = remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.mediaAccess) === null || _a === undefined ? undefined : _a.isAudioPermitted) && (remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.role) === 'Attendee' && onForbidAudio) {
38206
38049
  _defaultMenuItems.push({
38207
38050
  key: 'forbid-audio',
@@ -38217,7 +38060,6 @@ const usePeoplePane = (props) => {
38217
38060
  ariaLabel: localeStrings.forbidAudioMenuLabel
38218
38061
  });
38219
38062
  }
38220
- /* @conditional-compile-remove(media-access) */
38221
38063
  if ((remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.mediaAccess) &&
38222
38064
  !remoteParticipant.mediaAccess.isVideoPermitted &&
38223
38065
  (remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.role) === 'Attendee' &&
@@ -38236,7 +38078,6 @@ const usePeoplePane = (props) => {
38236
38078
  ariaLabel: localeStrings.permitVideoMenuLabel
38237
38079
  });
38238
38080
  }
38239
- /* @conditional-compile-remove(media-access) */
38240
38081
  if (((_b = remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.mediaAccess) === null || _b === undefined ? undefined : _b.isVideoPermitted) && (remoteParticipant === null || remoteParticipant === undefined ? undefined : remoteParticipant.role) === 'Attendee' && onForbidVideo) {
38241
38082
  _defaultMenuItems.push({
38242
38083
  key: 'forbid-video',
@@ -38353,22 +38194,14 @@ const usePeoplePane = (props) => {
38353
38194
  spotlightedParticipantUserIds,
38354
38195
  onMuteParticipant,
38355
38196
  remoteParticipants,
38356
- /* @conditional-compile-remove(media-access) */
38357
38197
  onPermitAudio,
38358
- /* @conditional-compile-remove(media-access) */
38359
38198
  onForbidAudio,
38360
- /* @conditional-compile-remove(media-access) */
38361
38199
  onPermitVideo,
38362
- /* @conditional-compile-remove(media-access) */
38363
38200
  onForbidVideo,
38364
38201
  onFetchParticipantMenuItems,
38365
- /* @conditional-compile-remove(media-access) */
38366
38202
  localeStrings.permitAudioMenuLabel,
38367
- /* @conditional-compile-remove(media-access) */
38368
38203
  localeStrings.forbidAudioMenuLabel,
38369
- /* @conditional-compile-remove(media-access) */
38370
38204
  localeStrings.permitVideoMenuLabel,
38371
- /* @conditional-compile-remove(media-access) */
38372
38205
  localeStrings.forbidVideoMenuLabel,
38373
38206
  localeStrings.stopSpotlightOnSelfMenuLabel,
38374
38207
  localeStrings.stopSpotlightMenuLabel,
@@ -38394,57 +38227,33 @@ const usePeoplePane = (props) => {
38394
38227
  const onRenderContent = React.useCallback(() => {
38395
38228
  return (React.createElement(React.Fragment, null,
38396
38229
  React.createElement(Prompt, Object.assign({}, muteAllPromptLabels, { styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onMuteAllPromptConfirm(), isOpen: showMuteAllPrompt, onCancel: () => setShowMuteAllPrompt(false) })),
38397
- /* @conditional-compile-remove(media-access) */
38398
38230
  React.createElement(Prompt, { heading: localeStrings.forbidOthersAudioDialogTitle, text: localeStrings.forbidOthersAudioDialogContent, confirmButtonLabel: localeStrings.forbidOthersAudioConfirmButtonLabel, cancelButtonLabel: localeStrings.forbidOthersAudioCancelButtonLabel, styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onForbidAllAttendeesPromptConfirm(), isOpen: showForbidOthersAudioPrompt, onCancel: () => setShowForbidOthersAudioPrompt(false) }),
38399
- /* @conditional-compile-remove(media-access) */
38400
38231
  React.createElement(Prompt, { heading: localeStrings.permitOthersAudioDialogTitle, text: localeStrings.permitOthersAudioDialogContent, confirmButtonLabel: localeStrings.permitOthersAudioConfirmButtonLabel, cancelButtonLabel: localeStrings.permitOthersAudioCancelButtonLabel, styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onPermitAllAttendeesPromptConfirm(), isOpen: showPermitOthersAudioPrompt, onCancel: () => setShowForbidOthersAudioPrompt(false) }),
38401
- /* @conditional-compile-remove(media-access) */
38402
38232
  React.createElement(Prompt, { heading: localeStrings.forbidOthersVideoDialogTitle, text: localeStrings.forbidOthersVideoDialogContent, confirmButtonLabel: localeStrings.forbidOthersVideoConfirmButtonLabel, cancelButtonLabel: localeStrings.forbidOthersVideoCancelButtonLabel, styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onForbidOthersVideoPromptConfirm(), isOpen: showForbidOthersVideoPrompt, onCancel: () => setShowForbidOthersVideoPrompt(false) }),
38403
- /* @conditional-compile-remove(media-access) */
38404
38233
  React.createElement(Prompt, { heading: localeStrings.permitOthersVideoDialogTitle, text: localeStrings.permitOthersVideoDialogContent, confirmButtonLabel: localeStrings.permitOthersVideoConfirmButtonLabel, cancelButtonLabel: localeStrings.permitOthersVideoCancelButtonLabel, styles: { main: { minWidth: '22.5rem', padding: '1.5rem' } }, onConfirm: () => onPermitOthersVideoPromptConfirm(), isOpen: showPermitOthersVideoPrompt, onCancel: () => setShowForbidOthersVideoPrompt(false) }),
38405
38234
  React.createElement(PeoplePaneContent, { inviteLink: inviteLink, onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: onFetchParticipantMenuItemsForCallComposite, setDrawerMenuItems: setDrawerMenuItems, mobileView: mobileView, setParticipantActioned: setParticipantActioned, participantListHeadingMoreButtonProps: sidePaneHeaderMenuProps, pinnedParticipants: pinnedParticipants, role: role, alternateCallerId: alternateCallerId })));
38406
38235
  }, [
38407
38236
  muteAllPromptLabels,
38408
38237
  showMuteAllPrompt,
38409
- /* @conditional-compile-remove(media-access) */
38410
38238
  localeStrings.forbidOthersAudioDialogTitle,
38411
- /* @conditional-compile-remove(media-access) */
38412
38239
  localeStrings.forbidOthersAudioDialogContent,
38413
- /* @conditional-compile-remove(media-access) */
38414
38240
  localeStrings.forbidOthersAudioConfirmButtonLabel,
38415
- /* @conditional-compile-remove(media-access) */
38416
38241
  localeStrings.forbidOthersAudioCancelButtonLabel,
38417
- /* @conditional-compile-remove(media-access) */
38418
38242
  localeStrings.permitOthersAudioDialogTitle,
38419
- /* @conditional-compile-remove(media-access) */
38420
38243
  localeStrings.permitOthersAudioDialogContent,
38421
- /* @conditional-compile-remove(media-access) */
38422
38244
  localeStrings.permitOthersAudioConfirmButtonLabel,
38423
- /* @conditional-compile-remove(media-access) */
38424
38245
  localeStrings.permitOthersAudioCancelButtonLabel,
38425
- /* @conditional-compile-remove(media-access) */
38426
38246
  localeStrings.forbidOthersVideoDialogTitle,
38427
- /* @conditional-compile-remove(media-access) */
38428
38247
  localeStrings.forbidOthersVideoDialogContent,
38429
- /* @conditional-compile-remove(media-access) */
38430
38248
  localeStrings.forbidOthersVideoConfirmButtonLabel,
38431
- /* @conditional-compile-remove(media-access) */
38432
38249
  localeStrings.forbidOthersVideoCancelButtonLabel,
38433
- /* @conditional-compile-remove(media-access) */
38434
38250
  localeStrings.permitOthersVideoDialogTitle,
38435
- /* @conditional-compile-remove(media-access) */
38436
38251
  localeStrings.permitOthersVideoDialogContent,
38437
- /* @conditional-compile-remove(media-access) */
38438
38252
  localeStrings.permitOthersVideoConfirmButtonLabel,
38439
- /* @conditional-compile-remove(media-access) */
38440
38253
  localeStrings.permitOthersVideoCancelButtonLabel,
38441
- /* @conditional-compile-remove(media-access) */
38442
38254
  showForbidOthersAudioPrompt,
38443
- /* @conditional-compile-remove(media-access) */
38444
38255
  showPermitOthersAudioPrompt,
38445
- /* @conditional-compile-remove(media-access) */
38446
38256
  showForbidOthersVideoPrompt,
38447
- /* @conditional-compile-remove(media-access) */
38448
38257
  showPermitOthersVideoPrompt,
38449
38258
  inviteLink,
38450
38259
  onFetchAvatarPersonaData,
@@ -38457,13 +38266,9 @@ const usePeoplePane = (props) => {
38457
38266
  role,
38458
38267
  alternateCallerId,
38459
38268
  onMuteAllPromptConfirm,
38460
- /* @conditional-compile-remove(media-access) */
38461
38269
  onForbidAllAttendeesPromptConfirm,
38462
- /* @conditional-compile-remove(media-access) */
38463
38270
  onPermitAllAttendeesPromptConfirm,
38464
- /* @conditional-compile-remove(media-access) */
38465
38271
  onForbidOthersVideoPromptConfirm,
38466
- /* @conditional-compile-remove(media-access) */
38467
38272
  onPermitOthersVideoPromptConfirm
38468
38273
  ]);
38469
38274
  const sidePaneRenderer = React.useMemo(() => ({
@@ -39158,32 +38963,26 @@ const CapabilitiesChangedNotificationBar = (props) => {
39158
38963
  })));
39159
38964
  };
39160
38965
  const getCapabilityChangedNotificationString = (notification, strings) => {
39161
- var _e, _f, _g, _h;
38966
+ var _a, _b, _c, _d;
39162
38967
  switch (notification.capabilityName) {
39163
- case 'turnVideoOn':
39164
- /* @conditional-compile-remove(media-access) */
39165
- return undefined;
39166
- case 'unmuteMic':
39167
- /* @conditional-compile-remove(media-access) */
39168
- return undefined;
39169
38968
  case 'shareScreen':
39170
38969
  if (notification.isPresent && notification.changedReason === 'RoleChanged' && notification.role === 'Presenter') {
39171
- return (_e = strings === null || strings === undefined ? undefined : strings.shareScreen) === null || _e === undefined ? undefined : _e.grantedDueToRoleChangeToPresenter;
38970
+ return (_a = strings === null || strings === undefined ? undefined : strings.shareScreen) === null || _a === undefined ? undefined : _a.grantedDueToRoleChangeToPresenter;
39172
38971
  }
39173
38972
  if (!notification.isPresent && notification.changedReason === 'RoleChanged' && notification.role === 'Attendee') {
39174
- return (_f = strings === null || strings === undefined ? undefined : strings.shareScreen) === null || _f === undefined ? undefined : _f.lostDueToRoleChangeToAttendee;
38973
+ return (_b = strings === null || strings === undefined ? undefined : strings.shareScreen) === null || _b === undefined ? undefined : _b.lostDueToRoleChangeToAttendee;
39175
38974
  }
39176
38975
  break;
39177
38976
  case 'viewAttendeeNames':
39178
38977
  if (!notification.isPresent &&
39179
38978
  notification.changedReason === 'MeetingOptionOrOrganizerPolicyChanged' &&
39180
38979
  notification.role === 'Attendee') {
39181
- return (_g = strings === null || strings === undefined ? undefined : strings.hideAttendeeNames) === null || _g === undefined ? undefined : _g.hideAttendeeNameAttendee;
38980
+ return (_c = strings === null || strings === undefined ? undefined : strings.hideAttendeeNames) === null || _c === undefined ? undefined : _c.hideAttendeeNameAttendee;
39182
38981
  }
39183
38982
  if (!notification.isPresent &&
39184
38983
  notification.changedReason === 'MeetingOptionOrOrganizerPolicyChanged' &&
39185
38984
  notification.role === 'Presenter') {
39186
- return (_h = strings === null || strings === undefined ? undefined : strings.hideAttendeeNames) === null || _h === undefined ? undefined : _h.hideAttendeeNamePresenter;
38985
+ return (_d = strings === null || strings === undefined ? undefined : strings.hideAttendeeNames) === null || _d === undefined ? undefined : _d.hideAttendeeNamePresenter;
39187
38986
  }
39188
38987
  }
39189
38988
  return undefined;
@@ -39494,7 +39293,7 @@ const MAX_PINNED_REMOTE_VIDEO_TILES = 4;
39494
39293
  * @private
39495
39294
  */
39496
39295
  const CallArrangement = (props) => {
39497
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
39296
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
39498
39297
  const containerClassName = React.useMemo(() => {
39499
39298
  return props.mobileView ? containerStyleMobile : containerStyleDesktop;
39500
39299
  }, [props.mobileView]);
@@ -39557,15 +39356,7 @@ const CallArrangement = (props) => {
39557
39356
  const videoGalleryProps = usePropsFor$1(VideoGallery);
39558
39357
  const muteAllHandlers = useHandlers();
39559
39358
  const { setPromptProps, setIsPromptOpen, hideSpotlightButtons } = props;
39560
- const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, onMuteParticipant, spotlightedParticipants, maxParticipantsToSpotlight, localParticipant,
39561
- /* @conditional-compile-remove(media-access) */
39562
- onForbidAudio,
39563
- /* @conditional-compile-remove(media-access) */
39564
- onPermitAudio,
39565
- /* @conditional-compile-remove(media-access) */
39566
- onForbidVideo,
39567
- /* @conditional-compile-remove(media-access) */
39568
- onPermitVideo } = videoGalleryProps;
39359
+ const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, onMuteParticipant, spotlightedParticipants, maxParticipantsToSpotlight, localParticipant, onForbidAudio, onPermitAudio, onForbidVideo, onPermitVideo } = videoGalleryProps;
39569
39360
  const [showTeamsMeetingConferenceModal, setShowTeamsMeetingConferenceModal] = React.useState(false);
39570
39361
  const toggleTeamsMeetingConferenceModal = React.useCallback(() => {
39571
39362
  setShowTeamsMeetingConferenceModal(!showTeamsMeetingConferenceModal);
@@ -39639,14 +39430,10 @@ const CallArrangement = (props) => {
39639
39430
  stopAllSpotlightWithPrompt,
39640
39431
  spotlightedParticipants
39641
39432
  ]);
39642
- /* @conditional-compile-remove(media-access) */
39643
39433
  const meetingMediaAccess = useSelector$1(getMediaAccessSetting);
39644
- /* @conditional-compile-remove(media-access) */
39645
39434
  const canForbidOthersAudio = !!((_b = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersAudio) === null || _b === undefined ? undefined : _b.isPresent);
39646
- /* @conditional-compile-remove(media-access) */
39647
39435
  const canForbidOthersVideo = !!((_c = capabilities === null || capabilities === undefined ? undefined : capabilities.forbidOthersVideo) === null || _c === undefined ? undefined : _c.isPresent);
39648
39436
  const onToggleParticipantMicPeoplePaneProps = React.useMemo(() => {
39649
- /* @conditional-compile-remove(media-access) */
39650
39437
  return {
39651
39438
  onForbidAudio: canForbidOthersAudio ? onForbidAudio : undefined,
39652
39439
  onPermitAudio: canForbidOthersAudio ? onPermitAudio : undefined,
@@ -39659,17 +39446,17 @@ const CallArrangement = (props) => {
39659
39446
  meetingMediaAccess
39660
39447
  };
39661
39448
  }, [
39662
- /* @conditional-compile-remove(media-access) */ canForbidOthersAudio,
39663
- /* @conditional-compile-remove(media-access) */ onForbidAudio,
39664
- /* @conditional-compile-remove(media-access) */ onPermitAudio,
39665
- /* @conditional-compile-remove(media-access) */ muteAllHandlers.onForbidOthersAudio,
39666
- /* @conditional-compile-remove(media-access) */ muteAllHandlers.onPermitOthersAudio,
39667
- /* @conditional-compile-remove(media-access) */ muteAllHandlers.onForbidOthersVideo,
39668
- /* @conditional-compile-remove(media-access) */ muteAllHandlers.onPermitOthersVideo,
39669
- /* @conditional-compile-remove(media-access) */ canForbidOthersVideo,
39670
- /* @conditional-compile-remove(media-access) */ onForbidVideo,
39671
- /* @conditional-compile-remove(media-access) */ onPermitVideo,
39672
- /* @conditional-compile-remove(media-access) */ meetingMediaAccess
39449
+ canForbidOthersAudio,
39450
+ onForbidAudio,
39451
+ onPermitAudio,
39452
+ muteAllHandlers.onForbidOthersAudio,
39453
+ muteAllHandlers.onPermitOthersAudio,
39454
+ muteAllHandlers.onForbidOthersVideo,
39455
+ muteAllHandlers.onPermitOthersVideo,
39456
+ canForbidOthersVideo,
39457
+ onForbidVideo,
39458
+ onPermitVideo,
39459
+ meetingMediaAccess
39673
39460
  ]);
39674
39461
  const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, peoplePaneProps), spotlightPeoplePaneProps), onMuteParticipantPeoplePaneProps), pinPeoplePaneProps), onToggleParticipantMicPeoplePaneProps));
39675
39462
  const togglePeoplePane = React.useCallback(() => {
@@ -39736,10 +39523,11 @@ const CallArrangement = (props) => {
39736
39523
  if ((isVideoPaneOpen || !isCameraOn) && (props.errorBarProps || props.showErrorNotifications)) {
39737
39524
  filteredLatestErrorNotifications = filteredLatestErrorNotifications.filter((e) => e.type !== 'unableToStartVideoEffect');
39738
39525
  }
39739
- const isTeamsCaptions = useSelector$1(getCaptionsKind) === 'TeamsCaptions';
39740
39526
  const isTeamsMeeting = useSelector$1(getIsTeamsMeeting);
39741
39527
  const isTeamsCall = useSelector$1(getIsTeamsCall);
39742
- const useTeamsCaptions = isTeamsMeeting || isTeamsCall || isTeamsCaptions;
39528
+ // Teams captions are only available in Teams meetings or Teams calls.
39529
+ // For Teams Meetings, we need to check if the capability is present.
39530
+ const useTeamsCaptions = (isTeamsMeeting && ((_d = capabilities === null || capabilities === undefined ? undefined : capabilities.setCaptionLanguage) === null || _d === undefined ? undefined : _d.isPresent)) || isTeamsCall;
39743
39531
  const hasJoinedCall = useSelector$1(getCallStatus) === 'Connected';
39744
39532
  const isCaptionsOn = useSelector$1(getCaptionsStatus);
39745
39533
  const minMaxDragPosition = useMinMaxDragPosition(props.modalLayerHostId);
@@ -39747,7 +39535,7 @@ const CallArrangement = (props) => {
39747
39535
  const galleryContainerStyles = React.useMemo(() => {
39748
39536
  var _a;
39749
39537
  return Object.assign(Object.assign({}, mediaGalleryContainerStyles$1), (((_a = props === null || props === undefined ? undefined : props.captionsOptions) === null || _a === undefined ? undefined : _a.height) === 'full' ? { root: { postion: 'absolute' } } : {}));
39750
- }, [(_d = props === null || props === undefined ? undefined : props.captionsOptions) === null || _d === undefined ? undefined : _d.height]);
39538
+ }, [(_e = props === null || props === undefined ? undefined : props.captionsOptions) === null || _e === undefined ? undefined : _e.height]);
39751
39539
  if (isTeamsMeeting) {
39752
39540
  filteredLatestErrorNotifications
39753
39541
  .filter((notification) => notification.type === 'teamsMeetingCallNetworkQualityLow')
@@ -39760,8 +39548,8 @@ const CallArrangement = (props) => {
39760
39548
  const verticalControlBar = props.mobileView && containerWidth && containerHeight && containerWidth / containerHeight > 1 ? true : false;
39761
39549
  // Filter out shareScreen capability notifications if on mobile
39762
39550
  const filteredCapabilitesChangedNotifications = props.mobileView
39763
- ? (_e = props.capabilitiesChangedNotificationBarProps) === null || _e === undefined ? undefined : _e.capabilitiesChangedNotifications.filter((notification) => notification.capabilityName !== 'shareScreen')
39764
- : (_f = props.capabilitiesChangedNotificationBarProps) === null || _f === undefined ? undefined : _f.capabilitiesChangedNotifications;
39551
+ ? (_f = props.capabilitiesChangedNotificationBarProps) === null || _f === undefined ? undefined : _f.capabilitiesChangedNotifications.filter((notification) => notification.capabilityName !== 'shareScreen')
39552
+ : (_g = props.capabilitiesChangedNotificationBarProps) === null || _g === undefined ? undefined : _g.capabilitiesChangedNotifications;
39765
39553
  /* @conditional-compile-remove(breakout-rooms) */
39766
39554
  const notificationStackStrings = useCompositeStringsForNotificationStackStrings(locale);
39767
39555
  let latestNotifications = props.latestNotifications;
@@ -39781,17 +39569,17 @@ const CallArrangement = (props) => {
39781
39569
  return (React.createElement("div", { ref: containerRef, className: react.mergeStyles(containerDivStyles), id: props.id },
39782
39570
  React.createElement(react.Stack, { verticalFill: true, horizontalAlign: "stretch", className: containerClassName, "data-ui-id": props.dataUiId },
39783
39571
  React.createElement(react.Stack, { reversed: true, horizontal: verticalControlBar, grow: true, styles: callArrangementContainerStyles(verticalControlBar) },
39784
- ((_g = props.callControlProps) === null || _g === undefined ? undefined : _g.options) !== false && !isMobileWithActivePane && (React.createElement(react.Stack, { verticalAlign: 'center', className: react.mergeStyles({
39572
+ ((_h = props.callControlProps) === null || _h === undefined ? undefined : _h.options) !== false && !isMobileWithActivePane && (React.createElement(react.Stack, { verticalAlign: 'center', className: react.mergeStyles({
39785
39573
  zIndex: CONTROL_BAR_Z_INDEX,
39786
39574
  padding: verticalControlBar ? '0.25rem' : 'unset'
39787
- }) }, isLegacyCallControlEnabled((_h = props.callControlProps) === null || _h === undefined ? undefined : _h.options) ? (React.createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight, isMobile: props.mobileView, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, displayVertical: verticalControlBar }))) : (React.createElement(CommonCallControlBar, Object.assign({}, props.callControlProps, { ref: controlBarRef, callControls: props.callControlProps.options, callAdapter: adapter, mobileView: props.mobileView, disableButtonsForLobbyPage: isInLobby, disableButtonsForHoldScreen: isInLocalHold, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, onMoreButtonClicked: onMoreButtonClicked, isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) || hasJoinedCall,
39575
+ }) }, isLegacyCallControlEnabled((_j = props.callControlProps) === null || _j === undefined ? undefined : _j.options) ? (React.createElement(CallControls, Object.assign({}, props.callControlProps, { containerWidth: containerWidth, containerHeight: containerHeight, isMobile: props.mobileView, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, displayVertical: verticalControlBar }))) : (React.createElement(CommonCallControlBar, Object.assign({}, props.callControlProps, { ref: controlBarRef, callControls: props.callControlProps.options, callAdapter: adapter, mobileView: props.mobileView, disableButtonsForLobbyPage: isInLobby, disableButtonsForHoldScreen: isInLocalHold, peopleButtonChecked: isPeoplePaneOpen, onPeopleButtonClicked: togglePeoplePane, onMoreButtonClicked: onMoreButtonClicked, isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) || hasJoinedCall,
39788
39576
  /* @conditional-compile-remove(rtt) */
39789
39577
  isRealTimeTextSupported: hasJoinedCall,
39790
39578
  /* @conditional-compile-remove(rtt) */
39791
39579
  onStartRealTimeText: onStartRealTimeText,
39792
39580
  /* @conditional-compile-remove(rtt) */
39793
39581
  startRealTimeTextButtonChecked: openRealTimeText, useTeamsCaptions: useTeamsCaptions, isCaptionsOn: isCaptionsOn, onClickVideoEffects: onResolveVideoEffectDependency ? openVideoEffectsPane : undefined, displayVertical: verticalControlBar, onUserSetOverflowGalleryPositionChange: props.onUserSetOverflowGalleryPositionChange, onUserSetGalleryLayout: props.onUserSetGalleryLayoutChange, userSetGalleryLayout: props.userSetGalleryLayout, onSetDialpadPage: props.onSetDialpadPage, dtmfDialerPresent: props.dtmfDialerPresent, peopleButtonRef: peopleButtonRef, cameraButtonRef: cameraButtonRef, onStopLocalSpotlight: !hideSpotlightButtons && localParticipant.spotlight ? onStopLocalSpotlightWithPrompt : undefined, onToggleTeamsMeetingConferenceModal: toggleTeamsMeetingConferenceModal, teamsMeetingConferenceModalPresent: showTeamsMeetingConferenceModal, sidePaneDismissButtonRef: sidePaneDismissButtonRef }))))),
39794
- ((_j = props.callControlProps) === null || _j === undefined ? undefined : _j.options) !== false && showDrawer && (React.createElement(react.Stack, { styles: drawerContainerStylesValue },
39582
+ ((_k = props.callControlProps) === null || _k === undefined ? undefined : _k.options) !== false && showDrawer && (React.createElement(react.Stack, { styles: drawerContainerStylesValue },
39795
39583
  React.createElement(PreparedMoreDrawer, { callControls: props.callControlProps.options, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked, disableButtonsForHoldScreen: isInLocalHold, isCaptionsSupported: (useTeamsCaptions && hasJoinedCall) || hasJoinedCall,
39796
39584
  /* @conditional-compile-remove(rtt) */
39797
39585
  isRealTimeTextSupported: hasJoinedCall,
@@ -39822,7 +39610,7 @@ const CallArrangement = (props) => {
39822
39610
  React.createElement(SidePane, { mobileView: props.mobileView, maxWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, minWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, updateSidePaneRenderer: props.updateSidePaneRenderer, onPeopleButtonClicked: props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)
39823
39611
  ? undefined
39824
39612
  : togglePeoplePane, disablePeopleButton: typeof props.callControlProps.options !== 'boolean' &&
39825
- isDisabled$4((_k = props.callControlProps.options) === null || _k === undefined ? undefined : _k.participantsButton), onChatButtonClicked: (_l = props.mobileChatTabHeader) === null || _l === undefined ? undefined : _l.onClick, disableChatButton: (_m = props.mobileChatTabHeader) === null || _m === undefined ? undefined : _m.disabled, showAddPeopleButton: !!props.callControlProps.callInvitationURL, ariaLabel: isVideoEffectsPaneOpen ? locale.strings.call.videoEffectsPaneAriaLabel : undefined }),
39613
+ isDisabled$4((_l = props.callControlProps.options) === null || _l === undefined ? undefined : _l.participantsButton), onChatButtonClicked: (_m = props.mobileChatTabHeader) === null || _m === undefined ? undefined : _m.onClick, disableChatButton: (_o = props.mobileChatTabHeader) === null || _o === undefined ? undefined : _o.disabled, showAddPeopleButton: !!props.callControlProps.callInvitationURL, ariaLabel: isVideoEffectsPaneOpen ? locale.strings.call.videoEffectsPaneAriaLabel : undefined }),
39826
39614
  props.mobileView && (React.createElement(ModalLocalAndRemotePIP, { modalLayerHostId: props.modalLayerHostId, hidden: !isSidePaneOpen, styles: pipStyles, strings: modalStrings, minDragPosition: minMaxDragPosition.minDragPosition, maxDragPosition: minMaxDragPosition.maxDragPosition, onDismissSidePane: () => {
39827
39615
  closePeoplePane();
39828
39616
  if (props.onCloseChatPane) {
@@ -43521,13 +43309,9 @@ class AzureCommunicationCallAdapter {
43521
43309
  this.stopAllSpotlight.bind(this);
43522
43310
  this.muteParticipant.bind(this);
43523
43311
  this.muteAllRemoteParticipants.bind(this);
43524
- /* @conditional-compile-remove(media-access) */
43525
43312
  this.forbidOthersAudio.bind(this);
43526
- /* @conditional-compile-remove(media-access) */
43527
43313
  this.permitOthersAudio.bind(this);
43528
- /* @conditional-compile-remove(media-access) */
43529
43314
  this.forbidOthersAudio.bind(this);
43530
- /* @conditional-compile-remove(media-access) */
43531
43315
  this.permitOthersAudio.bind(this);
43532
43316
  }
43533
43317
  dispose() {
@@ -44064,56 +43848,48 @@ class AzureCommunicationCallAdapter {
44064
43848
  this.handlers.onStopAllSpotlight();
44065
43849
  });
44066
43850
  }
44067
- /* @conditional-compile-remove(media-access) */
44068
43851
  forbidAudio(userIds) {
44069
43852
  return __awaiter$7(this, undefined, undefined, function* () {
44070
43853
  var _a, _b;
44071
43854
  (_b = (_a = this.handlers).onForbidAudio) === null || _b === undefined ? undefined : _b.call(_a, userIds);
44072
43855
  });
44073
43856
  }
44074
- /* @conditional-compile-remove(media-access) */
44075
43857
  permitAudio(userIds) {
44076
43858
  return __awaiter$7(this, undefined, undefined, function* () {
44077
43859
  var _a, _b;
44078
43860
  (_b = (_a = this.handlers).onPermitAudio) === null || _b === undefined ? undefined : _b.call(_a, userIds);
44079
43861
  });
44080
43862
  }
44081
- /* @conditional-compile-remove(media-access) */
44082
43863
  forbidOthersAudio() {
44083
43864
  return __awaiter$7(this, undefined, undefined, function* () {
44084
43865
  var _a, _b;
44085
43866
  (_b = (_a = this.handlers).onForbidOthersAudio) === null || _b === undefined ? undefined : _b.call(_a);
44086
43867
  });
44087
43868
  }
44088
- /* @conditional-compile-remove(media-access) */
44089
43869
  permitOthersAudio() {
44090
43870
  return __awaiter$7(this, undefined, undefined, function* () {
44091
43871
  var _a, _b;
44092
43872
  (_b = (_a = this.handlers).onPermitOthersAudio) === null || _b === undefined ? undefined : _b.call(_a);
44093
43873
  });
44094
43874
  }
44095
- /* @conditional-compile-remove(media-access) */
44096
43875
  forbidVideo(userIds) {
44097
43876
  return __awaiter$7(this, undefined, undefined, function* () {
44098
43877
  var _a, _b;
44099
43878
  (_b = (_a = this.handlers).onForbidVideo) === null || _b === undefined ? undefined : _b.call(_a, userIds);
44100
43879
  });
44101
43880
  }
44102
- /* @conditional-compile-remove(media-access) */
44103
43881
  permitVideo(userIds) {
44104
43882
  return __awaiter$7(this, undefined, undefined, function* () {
44105
43883
  var _a, _b;
44106
43884
  (_b = (_a = this.handlers).onPermitVideo) === null || _b === undefined ? undefined : _b.call(_a, userIds);
44107
43885
  });
44108
43886
  }
44109
- /* @conditional-compile-remove(media-access) */
44110
43887
  forbidOthersVideo() {
44111
43888
  return __awaiter$7(this, undefined, undefined, function* () {
44112
43889
  var _a, _b;
44113
43890
  (_b = (_a = this.handlers).onForbidOthersVideo) === null || _b === undefined ? undefined : _b.call(_a);
44114
43891
  });
44115
43892
  }
44116
- /* @conditional-compile-remove(media-access) */
44117
43893
  permitOthersVideo() {
44118
43894
  return __awaiter$7(this, undefined, undefined, function* () {
44119
43895
  var _a, _b;
@@ -44300,17 +44076,12 @@ class AzureCommunicationCallAdapter {
44300
44076
  transferAccepted(args) {
44301
44077
  this.emitter.emit('transferAccepted', args);
44302
44078
  }
44303
- capabilitiesChangedunmuteMicTrampoline(data) {
44304
- /* @conditional-compile-remove(media-access) */
44305
- return;
44306
- }
44307
44079
  capabilitiesChanged(data) {
44308
44080
  var _a, _b;
44309
44081
  if (((_a = data.newValue.turnVideoOn) === null || _a === undefined ? undefined : _a.isPresent) === false) {
44310
44082
  // stopCamera is handled by web sdk when video hard muted.
44311
44083
  this.disposeLocalVideoStreamView();
44312
44084
  }
44313
- this.capabilitiesChangedunmuteMicTrampoline(data);
44314
44085
  if (((_b = data.newValue.shareScreen) === null || _b === undefined ? undefined : _b.isPresent) === false) {
44315
44086
  this.stopScreenShare();
44316
44087
  }
@@ -45023,49 +44794,41 @@ class CallWithChatBackedCallAdapter {
45023
44794
  return this.callWithChatAdapter.returnFromBreakoutRoom();
45024
44795
  });
45025
44796
  }
45026
- /* @conditional-compile-remove(media-access) */
45027
44797
  forbidAudio(userIds) {
45028
44798
  return __awaiter$6(this, undefined, undefined, function* () {
45029
44799
  return this.callWithChatAdapter.forbidAudio(userIds);
45030
44800
  });
45031
44801
  }
45032
- /* @conditional-compile-remove(media-access) */
45033
44802
  permitAudio(userIds) {
45034
44803
  return __awaiter$6(this, undefined, undefined, function* () {
45035
44804
  return this.callWithChatAdapter.permitAudio(userIds);
45036
44805
  });
45037
44806
  }
45038
- /* @conditional-compile-remove(media-access) */
45039
44807
  forbidOthersAudio() {
45040
44808
  return __awaiter$6(this, undefined, undefined, function* () {
45041
44809
  return this.callWithChatAdapter.forbidOthersAudio();
45042
44810
  });
45043
44811
  }
45044
- /* @conditional-compile-remove(media-access) */
45045
44812
  permitOthersAudio() {
45046
44813
  return __awaiter$6(this, undefined, undefined, function* () {
45047
44814
  return this.callWithChatAdapter.permitOthersAudio();
45048
44815
  });
45049
44816
  }
45050
- /* @conditional-compile-remove(media-access) */
45051
44817
  forbidVideo(userIds) {
45052
44818
  return __awaiter$6(this, undefined, undefined, function* () {
45053
44819
  return this.callWithChatAdapter.forbidAudio(userIds);
45054
44820
  });
45055
44821
  }
45056
- /* @conditional-compile-remove(media-access) */
45057
44822
  permitVideo(userIds) {
45058
44823
  return __awaiter$6(this, undefined, undefined, function* () {
45059
44824
  return this.callWithChatAdapter.permitAudio(userIds);
45060
44825
  });
45061
44826
  }
45062
- /* @conditional-compile-remove(media-access) */
45063
44827
  forbidOthersVideo() {
45064
44828
  return __awaiter$6(this, undefined, undefined, function* () {
45065
44829
  return this.callWithChatAdapter.forbidOthersAudio();
45066
44830
  });
45067
44831
  }
45068
- /* @conditional-compile-remove(media-access) */
45069
44832
  permitOthersVideo() {
45070
44833
  return __awaiter$6(this, undefined, undefined, function* () {
45071
44834
  return this.callWithChatAdapter.permitOthersAudio();
@@ -46361,49 +46124,41 @@ class AzureCommunicationCallWithChatAdapter {
46361
46124
  }
46362
46125
  });
46363
46126
  }
46364
- /* @conditional-compile-remove(media-access) */
46365
46127
  forbidAudio(userIds) {
46366
46128
  return __awaiter$4(this, undefined, undefined, function* () {
46367
46129
  return this.callAdapter.forbidAudio(userIds);
46368
46130
  });
46369
46131
  }
46370
- /* @conditional-compile-remove(media-access) */
46371
46132
  permitAudio(userIds) {
46372
46133
  return __awaiter$4(this, undefined, undefined, function* () {
46373
46134
  return this.callAdapter.permitAudio(userIds);
46374
46135
  });
46375
46136
  }
46376
- /* @conditional-compile-remove(media-access) */
46377
46137
  forbidOthersAudio() {
46378
46138
  return __awaiter$4(this, undefined, undefined, function* () {
46379
46139
  return this.callAdapter.forbidOthersAudio();
46380
46140
  });
46381
46141
  }
46382
- /* @conditional-compile-remove(media-access) */
46383
46142
  permitOthersAudio() {
46384
46143
  return __awaiter$4(this, undefined, undefined, function* () {
46385
46144
  return this.callAdapter.permitOthersAudio();
46386
46145
  });
46387
46146
  }
46388
- /* @conditional-compile-remove(media-access) */
46389
46147
  forbidVideo(userIds) {
46390
46148
  return __awaiter$4(this, undefined, undefined, function* () {
46391
46149
  return this.callAdapter.forbidVideo(userIds);
46392
46150
  });
46393
46151
  }
46394
- /* @conditional-compile-remove(media-access) */
46395
46152
  permitVideo(userIds) {
46396
46153
  return __awaiter$4(this, undefined, undefined, function* () {
46397
46154
  return this.callAdapter.permitVideo(userIds);
46398
46155
  });
46399
46156
  }
46400
- /* @conditional-compile-remove(media-access) */
46401
46157
  forbidOthersVideo() {
46402
46158
  return __awaiter$4(this, undefined, undefined, function* () {
46403
46159
  return this.callAdapter.forbidOthersVideo();
46404
46160
  });
46405
46161
  }
46406
- /* @conditional-compile-remove(media-access) */
46407
46162
  permitOthersVideo() {
46408
46163
  return __awaiter$4(this, undefined, undefined, function* () {
46409
46164
  return this.callAdapter.permitOthersVideo();
@@ -47611,4 +47366,4 @@ exports.useTeamsCall = useTeamsCall;
47611
47366
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
47612
47367
  exports.useTeamsCallAgent = useTeamsCallAgent;
47613
47368
  exports.useTheme = useTheme;
47614
- //# sourceMappingURL=index-B8uYcMR8.js.map
47369
+ //# sourceMappingURL=index--34qf-o2.js.map