@azure/communication-react 1.8.1-alpha-202309200012 → 1.8.1-alpha-202309210012

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 (178) hide show
  1. package/dist/communication-react.d.ts +9 -8
  2. package/dist/dist-cjs/communication-react/index.js +1540 -1380
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/areEqual.d.ts +1 -0
  5. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  7. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +1 -0
  8. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.d.ts +1 -0
  9. package/dist/dist-esm/communication-react/src/mergedHooks.d.ts +1 -0
  10. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.d.ts +1 -0
  11. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.d.ts +1 -0
  12. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.d.ts +1 -0
  13. package/dist/dist-esm/react-components/src/components/Announcer.d.ts +1 -0
  14. package/dist/dist-esm/react-components/src/components/CameraButton.d.ts +1 -0
  15. package/dist/dist-esm/react-components/src/components/Caption.d.ts +1 -0
  16. package/dist/dist-esm/react-components/src/components/CaptionsBanner.d.ts +1 -0
  17. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.d.ts +1 -0
  18. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.d.ts +1 -0
  19. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts +1 -0
  20. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.d.ts +1 -0
  21. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +1 -0
  22. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.d.ts +1 -0
  23. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.d.ts +1 -0
  24. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.d.ts +1 -0
  25. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.d.ts +1 -0
  26. package/dist/dist-esm/react-components/src/components/ControlBarButton.d.ts +1 -0
  27. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.d.ts +1 -0
  28. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.d.ts +1 -0
  29. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.d.ts +1 -0
  30. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.d.ts +1 -0
  31. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.d.ts +1 -0
  32. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.d.ts +1 -0
  33. package/dist/dist-esm/react-components/src/components/DevicesButton.d.ts +1 -0
  34. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts +1 -0
  35. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.d.ts +1 -0
  36. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.d.ts +1 -0
  37. package/dist/dist-esm/react-components/src/components/EndCallButton.d.ts +1 -0
  38. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +1 -0
  39. package/dist/dist-esm/react-components/src/components/FileCard.d.ts +1 -0
  40. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +1 -0
  41. package/dist/dist-esm/react-components/src/components/FileUploadCards.d.ts +1 -0
  42. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.d.ts +1 -0
  43. package/dist/dist-esm/react-components/src/components/HoldButton.d.ts +1 -0
  44. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.d.ts +1 -0
  45. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.d.ts +1 -0
  46. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +1 -0
  47. package/dist/dist-esm/react-components/src/components/MicrophoneButton.d.ts +1 -0
  48. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts +1 -0
  49. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +1 -0
  50. package/dist/dist-esm/react-components/src/components/ParticipantsButton.d.ts +1 -0
  51. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.d.ts +1 -0
  52. package/dist/dist-esm/react-components/src/components/RaiseHandButton.d.ts +1 -0
  53. package/dist/dist-esm/react-components/src/components/ScreenShareButton.d.ts +1 -0
  54. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.d.ts +1 -0
  55. package/dist/dist-esm/react-components/src/components/SendBoxErrors.d.ts +1 -0
  56. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.d.ts +1 -0
  57. package/dist/dist-esm/react-components/src/components/StreamMedia.d.ts +1 -0
  58. package/dist/dist-esm/react-components/src/components/SystemMessage.d.ts +1 -0
  59. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.d.ts +1 -0
  60. package/dist/dist-esm/react-components/src/components/TypingIndicator.d.ts +1 -0
  61. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.d.ts +1 -0
  62. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.d.ts +1 -0
  63. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.d.ts +1 -0
  64. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.d.ts +1 -0
  65. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.d.ts +1 -0
  66. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.d.ts +1 -0
  67. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.d.ts +1 -0
  68. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.d.ts +1 -0
  69. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.d.ts +1 -0
  70. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.d.ts +1 -0
  71. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.d.ts +1 -0
  72. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.d.ts +17 -0
  73. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js +126 -0
  74. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js.map +1 -0
  75. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.d.ts +1 -0
  76. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.d.ts +1 -0
  77. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.d.ts +1 -0
  78. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.d.ts +1 -0
  79. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +37 -10
  80. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  81. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +2 -1
  82. package/dist/dist-esm/react-components/src/components/VideoGallery.js +6 -0
  83. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  84. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.d.ts +1 -0
  85. package/dist/dist-esm/react-components/src/theming/icons.d.ts +1 -0
  86. package/dist/dist-esm/react-components/src/types/OnRender.d.ts +1 -0
  87. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +1 -0
  88. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
  89. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  90. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +1 -0
  91. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts +1 -0
  92. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.d.ts +1 -0
  93. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.d.ts +1 -0
  94. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.d.ts +1 -0
  95. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.d.ts +1 -0
  96. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.d.ts +1 -0
  97. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.d.ts +1 -0
  98. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.d.ts +1 -0
  99. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.d.ts +1 -0
  100. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.d.ts +1 -0
  101. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts +1 -0
  102. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.d.ts +1 -0
  103. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts +1 -0
  104. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.d.ts +1 -0
  105. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.d.ts +1 -0
  106. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.d.ts +1 -0
  107. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.d.ts +1 -0
  108. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.d.ts +1 -0
  109. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.d.ts +1 -0
  110. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.d.ts +1 -0
  111. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.d.ts +1 -0
  112. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.d.ts +1 -0
  113. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.d.ts +1 -0
  114. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.d.ts +1 -0
  115. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.d.ts +1 -0
  116. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.d.ts +1 -0
  117. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +1 -0
  118. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +1 -0
  119. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.d.ts +1 -0
  120. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.d.ts +1 -0
  121. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.d.ts +1 -0
  122. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.d.ts +1 -0
  123. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.d.ts +1 -0
  124. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.d.ts +26 -3
  125. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.d.ts +24 -1
  126. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.d.ts +26 -3
  127. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.d.ts +26 -3
  128. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.d.ts +26 -3
  129. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.d.ts +26 -3
  130. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.d.ts +26 -3
  131. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts +25 -2
  132. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.d.ts +26 -3
  133. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.d.ts +27 -4
  134. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.d.ts +26 -3
  135. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.d.ts +27 -4
  136. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.d.ts +51 -5
  137. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.d.ts +26 -3
  138. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.d.ts +26 -3
  139. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +1 -0
  140. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.d.ts +1 -0
  141. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.d.ts +1 -0
  142. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.d.ts +1 -0
  143. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +1 -0
  144. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.d.ts +15 -3
  145. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts +1 -0
  146. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts +1 -0
  147. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.d.ts +1 -0
  148. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.d.ts +1 -0
  149. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.d.ts +1 -0
  150. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.d.ts +14 -3
  151. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.d.ts +1 -0
  152. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.d.ts +1 -0
  153. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.d.ts +1 -0
  154. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.d.ts +1 -0
  155. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.d.ts +1 -0
  156. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.d.ts +1 -0
  157. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.d.ts +1 -0
  158. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.d.ts +1 -0
  159. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +24 -3
  160. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  161. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.d.ts +1 -0
  162. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionSettingsDrawer.d.ts +1 -0
  163. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.d.ts +1 -0
  164. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.d.ts +1 -0
  165. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.d.ts +1 -0
  166. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.d.ts +1 -0
  167. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.d.ts +1 -0
  168. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.d.ts +1 -0
  169. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts +1 -0
  170. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.d.ts +1 -0
  171. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.d.ts +1 -0
  172. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.d.ts +1 -0
  173. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.d.ts +1 -0
  174. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +3 -7
  175. package/dist/dist-esm/react-composites/src/composites/common/icons.js +4 -2
  176. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  177. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -0
  178. package/package.json +10 -9
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * Compare if two types are equal, result type will be true/false
3
4
  *
@@ -2,5 +2,5 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
4
  // GENERATED FILE. DO NOT EDIT MANUALLY.
5
- module.exports = '1.8.1-alpha-202309200012';
5
+ module.exports = '1.8.1-alpha-202309210012';
6
6
  //# sourceMappingURL=telemetryVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetryVersion.js","sourceRoot":"","sources":["../../../../../acs-ui-common/src/telemetryVersion.js"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,MAAM,CAAC,OAAO,GAAG,0BAA0B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// GENERATED FILE. DO NOT EDIT MANUALLY.\n\nmodule.exports = '1.8.1-alpha-202309200012';\n"]}
1
+ {"version":3,"file":"telemetryVersion.js","sourceRoot":"","sources":["../../../../../acs-ui-common/src/telemetryVersion.js"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,MAAM,CAAC,OAAO,GAAG,0BAA0B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// GENERATED FILE. DO NOT EDIT MANUALLY.\n\nmodule.exports = '1.8.1-alpha-202309210012';\n"]}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CameraButton, EndCallButton, ErrorBar, MicrophoneButton, DevicesButton, ParticipantList, ScreenShareButton, VideoGallery } from "../../../react-components/src";
2
3
  import { Dialpad } from "../../../react-components/src";
3
4
  import { HoldButton } from "../../../react-components/src";
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ErrorBar, MessageThread, ParticipantList, SendBox, TypingIndicator } from "../../../react-components/src";
2
3
  import { SendBoxSelector } from '../sendBoxSelector';
3
4
  import { MessageThreadSelector } from '../messageThreadSelector';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CallingHandlers, GetCallingSelector } from "../../calling-component-bindings/src";
2
3
  import { ChatHandlers, GetChatSelector } from "../../chat-component-bindings/src";
3
4
  import { ChatClientState } from "../../chat-stateful-client/src";
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /** @private */
2
3
  export declare type AnnouncerMessageBag = {
3
4
  message: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /** @private */
2
3
  declare const LiveMessage: (props: {
3
4
  message: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /** @private */
2
3
  declare const MessageBlock: (props: {
3
4
  message: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * @internal
3
4
  * aria props for this hidden component.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { VideoStreamOptions } from '../types';
2
3
  import { ControlBarButtonProps } from './ControlBarButton';
3
4
  import { IContextualMenuItemStyles, IContextualMenuStyles } from '@fluentui/react';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { OnRenderAvatarCallback } from '../types';
2
3
  import { _CaptionsInfo } from './CaptionsBanner';
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { OnRenderAvatarCallback } from '../types';
2
3
  /**
3
4
  * @internal
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { _captionsOptions } from './StartCaptionsButton';
2
3
  import { SpokenLanguageStrings, CaptionLanguageStrings } from '../types';
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Target } from '@fluentui/react';
2
3
  import { OnRenderAvatarCallback } from '../../types';
3
4
  import { MessageThreadStrings } from '../MessageThread';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { MessageThreadStrings } from '../MessageThread';
2
3
  import { ChatMessage, ComponentSlotStyle, OnRenderAvatarCallback } from '../../types';
3
4
  import { BlockedMessage } from '../../types';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { MessageThreadStrings } from '../MessageThread';
2
3
  import { ChatMessage } from '../../types';
3
4
  import { FileMetadata } from '../FileDownloadCards';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ChatMessage } from '../../types/ChatMessage';
2
3
  import { BlockedMessage } from '../../types/ChatMessage';
3
4
  import { MentionDisplayOptions } from '../MentionPopover';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Mention } from '../MentionPopover';
2
3
  /**
3
4
  * Provides the default implementation for rendering an Mention in a message thread
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { _ComplianceBannerStrings } from './types';
2
3
  import { ComplianceBannerVariant } from './Utils';
3
4
  /** @private */
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { _ComplianceBannerProps } from './types';
2
3
  /**
3
4
  * A component that displays banners to notify the user when call recording and
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { _ComplianceBannerStrings } from './types';
2
3
  import { ComplianceBannerVariant } from './Utils';
3
4
  /** @private */
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IButtonProps, IRenderFunction, IButtonStyles } from '@fluentui/react';
2
3
  /**
3
4
  * Strings of {@link ControlBarButton} that can be overridden.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ITooltipHostProps } from '@fluentui/react';
2
3
  /**
3
4
  * Tooltip that should wrap control bar buttons.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IButtonStyles, ILinkStyles } from '@fluentui/react';
2
3
  import { BaseCustomStyles } from '../../types';
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { BrowserPermissionDeniedProps, BrowserPermissionDeniedStrings } from './BrowserPermissionDenied';
2
3
  /**
3
4
  * @beta
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IDropdownOption, IDropdownStyles } from '@fluentui/react';
2
3
  /**
3
4
  * Strings of {@link DevicePermissionDropdown} that can be overridden.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { SitePermissionsStrings, SitePermissionsStyles } from './SitePermissionsScaffolding';
2
3
  /**
3
4
  * @beta
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ILinkStyles, IButtonStyles } from '@fluentui/react';
2
3
  import { BaseCustomStyles } from '../../types';
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IContextualMenuItem, IContextualMenuItemStyles, IContextualMenuStyles } from '@fluentui/react';
2
3
  import { ControlBarButtonProps, ControlBarButtonStyles } from './ControlBarButton';
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IStyle, IButtonStyles, ITextFieldStyles } from '@fluentui/react';
2
3
  /**
3
4
  * Strings of {@link Dialpad} that can be overridden.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { BaseCustomStyles } from '../../types';
2
3
  /**
3
4
  * An element that fills the space the DrawerContentContainer does not take up.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { BaseCustomStyles } from '../../types';
2
3
  import { _DrawerMenuItemProps } from './DrawerMenuItem';
3
4
  import { _DrawerSurfaceStyles } from './DrawerSurface';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ControlBarButtonProps } from './ControlBarButton';
2
3
  /**
3
4
  * Strings of {@link EndCallButton} that can be overridden.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IMessageBarProps } from '@fluentui/react';
2
3
  /**
3
4
  * Props for {@link ErrorBar}.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { _FileUploadCardsStrings } from './FileUploadCards';
2
3
  /**
3
4
  * @internal
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * @beta
3
4
  */
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ActiveFileUpload } from './SendBox';
2
3
  /**
3
4
  * Strings of _FileUploadCards that can be overridden.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * @internal
3
4
  */
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ControlBarButtonProps } from './ControlBarButton';
2
3
  /**
3
4
  *@beta
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { OptionsDevice } from './DevicesButton';
2
3
  /**
3
4
  * @public
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { MessageStatus } from "../../../acs-ui-common/src";
2
3
  import { BaseCustomStyles } from '../types';
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IStyle } from '@fluentui/react';
2
3
  import { BaseCustomStyles, ChatMessage, CustomMessage, SystemMessage, OnRenderAvatarCallback, Message, ReadReceiptsBySenderId, ComponentSlotStyle } from '../types';
3
4
  import { BlockedMessage } from '../types';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ControlBarButtonProps } from './ControlBarButton';
2
3
  import { IContextualMenuItemStyles, IContextualMenuStyles } from '@fluentui/react';
3
4
  import { ControlBarButtonStyles } from './ControlBarButton';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IContextualMenuItem, IStyle, PersonaPresence } from '@fluentui/react';
2
3
  import { BaseCustomStyles, OnRenderAvatarCallback } from '../types';
3
4
  import { ParticipantState } from '../types';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IContextualMenuItem, IContextualMenuItemStyles } from '@fluentui/react';
2
3
  import { BaseCustomStyles, OnRenderAvatarCallback, ParticipantListParticipant } from '../types';
3
4
  import { ParticipantItemStyles } from './ParticipantItem';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IContextualMenuStyles, IContextualMenuItemStyles } from '@fluentui/react';
2
3
  import { ParticipantListProps, ParticipantListStyles, ParticipantMenuItemsCallback } from './ParticipantList';
3
4
  import { ControlBarButtonProps, ControlBarButtonStyles } from './ControlBarButton';
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { _PictureInPictureInPictureTileProps } from './PictureInPictureInPictureTile';
2
3
  /**
3
4
  * Strings of {@link _PictureInPictureInPicture} that can be overridden.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ControlBarButtonProps } from './ControlBarButton';
2
3
  /**
3
4
  * Strings of {@link RaiseHandButton} that can be overridden.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ControlBarButtonProps } from './ControlBarButton';
2
3
  /**
3
4
  * Strings of {@link ScreenShareButton} that can be overridden.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * @beta
3
4
  * Error to be displayed to the user in an error bar above sendbox.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { SendBoxErrorBarError } from './SendBoxErrorBar';
2
3
  /**
3
4
  * @private
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ControlBarButtonProps } from './ControlBarButton';
2
3
  /**
3
4
  * options bag to start captions
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { BaseCustomStyles } from '../types';
2
3
  /**
3
4
  * Whether the stream is loading or not.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ComponentSlotStyle } from '../types';
2
3
  /**
3
4
  * Todo: We need to add more types of system messages that we support.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ErrorBarProps } from './ErrorBar';
2
3
  /**
3
4
  * Strings for {@link _TroubleshootingGuideErrorBar}.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { BaseCustomStyles, CommunicationParticipant } from '../types';
2
3
  import { IStyle } from '@fluentui/react';
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * Strings for UnsupportedBrowser component
3
4
  *
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * Strings for UnsupportedBrowser component
3
4
  *
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * @private
3
4
  */
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * Strings for UnsupportedBrowser component
3
4
  *
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { _VideoEffectsItemProps } from './VideoEffectsItem';
2
3
  /**
3
4
  * 'None' Video Effects Item.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IStyle } from '@fluentui/react';
2
3
  import { _VideoEffectsItemProps } from './VideoEffectsItem';
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { IIconProps, IStyle, ITooltipHostProps } from '@fluentui/react';
2
3
  /**
3
4
  * Props for {@link _VideoEffectsItem}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { LayoutProps } from './Layout';
2
3
  /**
3
4
  * Props for {@link DefaultLayout}.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * @private
3
4
  */
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { LayoutProps } from './Layout';
2
3
  import { LocalVideoTileSize } from '../VideoGallery';
3
4
  /**
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { LayoutProps } from './Layout';
2
3
  /**
3
4
  * Props for {@link FocusedContentLayout}.
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import { LayoutProps } from './Layout';
3
+ /**
4
+ * Props for {@link LargeGalleryLayout}.
5
+ *
6
+ * @private
7
+ */
8
+ export declare type LargeGalleryProps = LayoutProps;
9
+ /**
10
+ * VideoGallery Layout for when user is in a large meeting and wants to see more participants
11
+ *
12
+ * Caps the number of tiles that a participant can see in the grid to 49, Video and Audio.
13
+ *
14
+ * @private
15
+ */
16
+ export declare const LargeGalleryLayout: (props: LargeGalleryProps) => JSX.Element;
17
+ //# sourceMappingURL=LargeGalleryLayout.d.ts.map
@@ -0,0 +1,126 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import React, { useMemo, useRef, useState } from 'react';
4
+ import { isNarrowWidth } from '../utils/responsive';
5
+ /* @conditional-compile-remove(gallery-layouts) */
6
+ import { isShortHeight } from '../utils/responsive';
7
+ import { OverflowGallery } from './OverflowGallery';
8
+ import { GridLayout } from '../GridLayout';
9
+ import { Stack } from '@fluentui/react';
10
+ import { useOrganizedParticipants } from './utils/videoGalleryLayoutUtils';
11
+ import { rootLayoutStyle } from './styles/DefaultLayout.styles';
12
+ import { videoGalleryLayoutGap } from './styles/Layout.styles';
13
+ /* @conditional-compile-remove(gallery-layouts) */
14
+ import { VERTICAL_GALLERY_TILE_SIZE_REM } from './styles/VideoGalleryResponsiveVerticalGallery.styles';
15
+ const DEFAULT_CHILDREN_PER_PAGE = 5;
16
+ /* @conditional-compile-remove(gallery-layouts) */
17
+ const REM_TO_PIXEL = 16;
18
+ /* @conditional-compile-remove(gallery-layouts) */
19
+ const LARGE_GALLERY_PARTICIPANT_CAP = 48;
20
+ /**
21
+ * VideoGallery Layout for when user is in a large meeting and wants to see more participants
22
+ *
23
+ * Caps the number of tiles that a participant can see in the grid to 49, Video and Audio.
24
+ *
25
+ * @private
26
+ */
27
+ export const LargeGalleryLayout = (props) => {
28
+ const { remoteParticipants = [], localParticipant, dominantSpeakers, localVideoComponent, screenShareComponent, onRenderRemoteParticipant, styles, maxRemoteVideoStreams, parentWidth,
29
+ /* @conditional-compile-remove(gallery-layouts) */ parentHeight, pinnedParticipantUserIds = [],
30
+ /* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition = 'HorizontalBottom' } = props;
31
+ const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;
32
+ /* @conditional-compile-remove(gallery-layouts) */
33
+ const isShort = parentHeight ? isShortHeight(parentHeight) : false;
34
+ const maxStreamsTrampoline = () => {
35
+ /* @conditional-compile-remove(gallery-layouts) */
36
+ return parentWidth && parentHeight
37
+ ? calculateMaxTilesInLargeGrid(parentWidth, parentHeight)
38
+ : maxRemoteVideoStreams;
39
+ return maxRemoteVideoStreams;
40
+ };
41
+ // This is for tracking the number of children in the first page of overflow gallery.
42
+ // This number will be used for the maxOverflowGalleryDominantSpeakers when organizing the remote participants.
43
+ // We need to add the local participant to the pinned participant count so we are placing the speakers correctly.
44
+ const childrenPerPage = useRef(DEFAULT_CHILDREN_PER_PAGE);
45
+ const { gridParticipants, overflowGalleryParticipants } = useOrganizedParticipants({
46
+ remoteParticipants,
47
+ localParticipant,
48
+ dominantSpeakers,
49
+ maxRemoteVideoStreams: maxStreamsTrampoline(),
50
+ isScreenShareActive: !!screenShareComponent,
51
+ maxOverflowGalleryDominantSpeakers: screenShareComponent
52
+ ? childrenPerPage.current - ((pinnedParticipantUserIds.length + 1) % childrenPerPage.current)
53
+ : childrenPerPage.current,
54
+ /* @conditional-compile-remove(pinned-participants) */ pinnedParticipantUserIds,
55
+ /* @conditional-compile-remove(gallery-layouts) */ layout: 'largeGallery'
56
+ });
57
+ let activeVideoStreams = 0;
58
+ const gridTiles = gridParticipants.map((p) => {
59
+ var _a, _b;
60
+ return onRenderRemoteParticipant(p, maxRemoteVideoStreams && maxRemoteVideoStreams >= 0
61
+ ? ((_a = p.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable) && activeVideoStreams++ < maxRemoteVideoStreams
62
+ : (_b = p.videoStream) === null || _b === void 0 ? void 0 : _b.isAvailable);
63
+ });
64
+ /**
65
+ * instantiate indexes available to render with indexes available that would be on first page
66
+ *
67
+ * For some components which do not strictly follow the order of the array, we might
68
+ * re-render the initial tiles -> dispose them -> create new tiles, we need to take care of
69
+ * this case when those components are here
70
+ */
71
+ const [indexesToRender, setIndexesToRender] = useState([]);
72
+ const overflowGalleryTiles = overflowGalleryParticipants.map((p, i) => {
73
+ var _a, _b;
74
+ return onRenderRemoteParticipant(p, maxRemoteVideoStreams && maxRemoteVideoStreams >= 0
75
+ ? ((_a = p.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable) && indexesToRender.includes(i) && activeVideoStreams++ < maxRemoteVideoStreams
76
+ : (_b = p.videoStream) === null || _b === void 0 ? void 0 : _b.isAvailable);
77
+ });
78
+ if (localVideoComponent) {
79
+ gridTiles.push(localVideoComponent);
80
+ }
81
+ const overflowGallery = useMemo(() => {
82
+ if (overflowGalleryTiles.length === 0) {
83
+ return null;
84
+ }
85
+ return (React.createElement(OverflowGallery, { isNarrow: isNarrow,
86
+ /* @conditional-compile-remove(gallery-layouts) */
87
+ isShort: isShort, shouldFloatLocalVideo: false, overflowGalleryElements: overflowGalleryTiles, horizontalGalleryStyles: styles === null || styles === void 0 ? void 0 : styles.horizontalGallery,
88
+ /* @conditional-compile-remove(vertical-gallery) */
89
+ verticalGalleryStyles: styles === null || styles === void 0 ? void 0 : styles.verticalGallery,
90
+ /* @conditional-compile-remove(vertical-gallery) */
91
+ overflowGalleryPosition: overflowGalleryPosition, onFetchTilesToRender: setIndexesToRender, onChildrenPerPageChange: (n) => {
92
+ childrenPerPage.current = n;
93
+ } }));
94
+ }, [
95
+ isNarrow,
96
+ /* @conditional-compile-remove(gallery-layouts) */ isShort,
97
+ overflowGalleryTiles,
98
+ styles === null || styles === void 0 ? void 0 : styles.horizontalGallery,
99
+ /* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition,
100
+ setIndexesToRender,
101
+ /* @conditional-compile-remove(vertical-gallery) */ styles === null || styles === void 0 ? void 0 : styles.verticalGallery
102
+ ]);
103
+ return (React.createElement(Stack
104
+ /* @conditional-compile-remove(vertical-gallery) */
105
+ , {
106
+ /* @conditional-compile-remove(vertical-gallery) */
107
+ horizontal: overflowGalleryPosition === 'VerticalRight', styles: rootLayoutStyle, tokens: videoGalleryLayoutGap },
108
+ /* @conditional-compile-remove(gallery-layouts) */ props.overflowGalleryPosition === 'HorizontalTop' ? (overflowGallery) : (React.createElement(React.Fragment, null)),
109
+ screenShareComponent ? (screenShareComponent) : (React.createElement(GridLayout, { key: "grid-layout", styles: styles === null || styles === void 0 ? void 0 : styles.gridLayout }, gridTiles)),
110
+ overflowGalleryTrampoline(overflowGallery,
111
+ /* @conditional-compile-remove(gallery-layouts) */ props.overflowGalleryPosition)));
112
+ };
113
+ const overflowGalleryTrampoline = (gallery, galleryPosition) => {
114
+ /* @conditional-compile-remove(gallery-layouts) */
115
+ return galleryPosition !== 'HorizontalTop' ? gallery : React.createElement(React.Fragment, null);
116
+ return gallery;
117
+ };
118
+ /* @conditional-compile-remove(gallery-layouts) */
119
+ const calculateMaxTilesInLargeGrid = (parentWidth, parentHeight) => {
120
+ const xAxisTiles = Math.floor(parentWidth / (VERTICAL_GALLERY_TILE_SIZE_REM.width * REM_TO_PIXEL));
121
+ const yAxisTiles = Math.floor(parentHeight / (VERTICAL_GALLERY_TILE_SIZE_REM.minHeight * REM_TO_PIXEL));
122
+ return xAxisTiles * yAxisTiles < LARGE_GALLERY_PARTICIPANT_CAP
123
+ ? xAxisTiles * yAxisTiles
124
+ : LARGE_GALLERY_PARTICIPANT_CAP;
125
+ };
126
+ //# sourceMappingURL=LargeGalleryLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LargeGalleryLayout.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/VideoGallery/LargeGalleryLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport React, { useMemo, useRef, useState } from 'react';\nimport { isNarrowWidth } from '../utils/responsive';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { isShortHeight } from '../utils/responsive';\nimport { LayoutProps } from './Layout';\nimport { OverflowGallery } from './OverflowGallery';\nimport { GridLayout } from '../GridLayout';\nimport { Stack } from '@fluentui/react';\nimport { useOrganizedParticipants } from './utils/videoGalleryLayoutUtils';\nimport { rootLayoutStyle } from './styles/DefaultLayout.styles';\nimport { videoGalleryLayoutGap } from './styles/Layout.styles';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { VERTICAL_GALLERY_TILE_SIZE_REM } from './styles/VideoGalleryResponsiveVerticalGallery.styles';\n\n/**\n * Props for {@link LargeGalleryLayout}.\n *\n * @private\n */\nexport type LargeGalleryProps = LayoutProps;\n\nconst DEFAULT_CHILDREN_PER_PAGE = 5;\n/* @conditional-compile-remove(gallery-layouts) */\nconst REM_TO_PIXEL = 16;\n/* @conditional-compile-remove(gallery-layouts) */\nconst LARGE_GALLERY_PARTICIPANT_CAP = 48;\n/**\n * VideoGallery Layout for when user is in a large meeting and wants to see more participants\n *\n * Caps the number of tiles that a participant can see in the grid to 49, Video and Audio.\n *\n * @private\n */\nexport const LargeGalleryLayout = (props: LargeGalleryProps): JSX.Element => {\n const {\n remoteParticipants = [],\n localParticipant,\n dominantSpeakers,\n localVideoComponent,\n screenShareComponent,\n onRenderRemoteParticipant,\n styles,\n maxRemoteVideoStreams,\n parentWidth,\n /* @conditional-compile-remove(gallery-layouts) */ parentHeight,\n pinnedParticipantUserIds = [],\n /* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition = 'HorizontalBottom'\n } = props;\n\n const isNarrow = parentWidth ? isNarrowWidth(parentWidth) : false;\n /* @conditional-compile-remove(gallery-layouts) */\n const isShort = parentHeight ? isShortHeight(parentHeight) : false;\n\n const maxStreamsTrampoline = (): number => {\n /* @conditional-compile-remove(gallery-layouts) */\n return parentWidth && parentHeight\n ? calculateMaxTilesInLargeGrid(parentWidth, parentHeight)\n : maxRemoteVideoStreams;\n return maxRemoteVideoStreams;\n };\n\n // This is for tracking the number of children in the first page of overflow gallery.\n // This number will be used for the maxOverflowGalleryDominantSpeakers when organizing the remote participants.\n // We need to add the local participant to the pinned participant count so we are placing the speakers correctly.\n const childrenPerPage = useRef(DEFAULT_CHILDREN_PER_PAGE);\n const { gridParticipants, overflowGalleryParticipants } = useOrganizedParticipants({\n remoteParticipants,\n localParticipant,\n dominantSpeakers,\n maxRemoteVideoStreams: maxStreamsTrampoline(),\n isScreenShareActive: !!screenShareComponent,\n maxOverflowGalleryDominantSpeakers: screenShareComponent\n ? childrenPerPage.current - ((pinnedParticipantUserIds.length + 1) % childrenPerPage.current)\n : childrenPerPage.current,\n /* @conditional-compile-remove(pinned-participants) */ pinnedParticipantUserIds,\n /* @conditional-compile-remove(gallery-layouts) */ layout: 'largeGallery'\n });\n let activeVideoStreams = 0;\n\n const gridTiles = gridParticipants.map((p) => {\n return onRenderRemoteParticipant(\n p,\n maxRemoteVideoStreams && maxRemoteVideoStreams >= 0\n ? p.videoStream?.isAvailable && activeVideoStreams++ < maxRemoteVideoStreams\n : p.videoStream?.isAvailable\n );\n });\n\n /**\n * instantiate indexes available to render with indexes available that would be on first page\n *\n * For some components which do not strictly follow the order of the array, we might\n * re-render the initial tiles -> dispose them -> create new tiles, we need to take care of\n * this case when those components are here\n */\n const [indexesToRender, setIndexesToRender] = useState<number[]>([]);\n\n const overflowGalleryTiles = overflowGalleryParticipants.map((p, i) => {\n return onRenderRemoteParticipant(\n p,\n maxRemoteVideoStreams && maxRemoteVideoStreams >= 0\n ? p.videoStream?.isAvailable && indexesToRender.includes(i) && activeVideoStreams++ < maxRemoteVideoStreams\n : p.videoStream?.isAvailable\n );\n });\n\n if (localVideoComponent) {\n gridTiles.push(localVideoComponent);\n }\n\n const overflowGallery = useMemo(() => {\n if (overflowGalleryTiles.length === 0) {\n return null;\n }\n return (\n <OverflowGallery\n isNarrow={isNarrow}\n /* @conditional-compile-remove(gallery-layouts) */\n isShort={isShort}\n shouldFloatLocalVideo={false}\n overflowGalleryElements={overflowGalleryTiles}\n horizontalGalleryStyles={styles?.horizontalGallery}\n /* @conditional-compile-remove(vertical-gallery) */\n verticalGalleryStyles={styles?.verticalGallery}\n /* @conditional-compile-remove(vertical-gallery) */\n overflowGalleryPosition={overflowGalleryPosition}\n onFetchTilesToRender={setIndexesToRender}\n onChildrenPerPageChange={(n: number) => {\n childrenPerPage.current = n;\n }}\n />\n );\n }, [\n isNarrow,\n /* @conditional-compile-remove(gallery-layouts) */ isShort,\n overflowGalleryTiles,\n styles?.horizontalGallery,\n /* @conditional-compile-remove(vertical-gallery) */ overflowGalleryPosition,\n setIndexesToRender,\n /* @conditional-compile-remove(vertical-gallery) */ styles?.verticalGallery\n ]);\n\n return (\n <Stack\n /* @conditional-compile-remove(vertical-gallery) */\n horizontal={overflowGalleryPosition === 'VerticalRight'}\n styles={rootLayoutStyle}\n tokens={videoGalleryLayoutGap}\n >\n {\n /* @conditional-compile-remove(gallery-layouts) */ props.overflowGalleryPosition === 'HorizontalTop' ? (\n overflowGallery\n ) : (\n <></>\n )\n }\n {screenShareComponent ? (\n screenShareComponent\n ) : (\n <GridLayout key=\"grid-layout\" styles={styles?.gridLayout}>\n {gridTiles}\n </GridLayout>\n )}\n {overflowGalleryTrampoline(\n overflowGallery,\n /* @conditional-compile-remove(gallery-layouts) */ props.overflowGalleryPosition\n )}\n </Stack>\n );\n};\n\nconst overflowGalleryTrampoline = (\n gallery: JSX.Element | null,\n galleryPosition?: 'HorizontalBottom' | 'VerticalRight' | 'HorizontalTop'\n): JSX.Element | null => {\n /* @conditional-compile-remove(gallery-layouts) */\n return galleryPosition !== 'HorizontalTop' ? gallery : <></>;\n return gallery;\n};\n\n/* @conditional-compile-remove(gallery-layouts) */\nconst calculateMaxTilesInLargeGrid = (parentWidth: number, parentHeight: number): number => {\n const xAxisTiles = Math.floor(parentWidth / (VERTICAL_GALLERY_TILE_SIZE_REM.width * REM_TO_PIXEL));\n const yAxisTiles = Math.floor(parentHeight / (VERTICAL_GALLERY_TILE_SIZE_REM.minHeight * REM_TO_PIXEL));\n return xAxisTiles * yAxisTiles < LARGE_GALLERY_PARTICIPANT_CAP\n ? xAxisTiles * yAxisTiles\n : LARGE_GALLERY_PARTICIPANT_CAP;\n};\n"]}