@azure/communication-react 1.10.0-beta.1 → 1.10.1-alpha-202311110012

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 (936) hide show
  1. package/dist/communication-react.d.ts +149 -22
  2. package/dist/dist-cjs/communication-react/index.js +5043 -4172
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/MessageStatus.js.map +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/areEqual.js.map +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/common.d.ts +7 -0
  7. package/dist/dist-esm/acs-ui-common/src/common.js +9 -0
  8. package/dist/dist-esm/acs-ui-common/src/common.js.map +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/commonProperties.js.map +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/constants.js.map +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/cssUtils.js.map +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/identifier.js +4 -1
  13. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  14. package/dist/dist-esm/acs-ui-common/src/index.d.ts +1 -1
  15. package/dist/dist-esm/acs-ui-common/src/index.js +1 -1
  16. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  17. package/dist/dist-esm/acs-ui-common/src/localizationUtils.js.map +1 -1
  18. package/dist/dist-esm/acs-ui-common/src/logEvent.js.map +1 -1
  19. package/dist/dist-esm/acs-ui-common/src/memoizeFnAll.js.map +1 -1
  20. package/dist/dist-esm/acs-ui-common/src/safeStringify.js.map +1 -1
  21. package/dist/dist-esm/acs-ui-common/src/telemetry.js.map +1 -1
  22. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  23. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  24. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts +4 -0
  25. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +9 -0
  26. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  27. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +43 -11
  28. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  29. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js +12 -5
  30. package/dist/dist-esm/calling-component-bindings/src/captionsSelector.js.map +1 -1
  31. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +20 -55
  32. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  33. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +35 -41
  34. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  35. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js +2 -2
  36. package/dist/dist-esm/calling-component-bindings/src/handlers/createDefaultCallingHandlersForComponent.js.map +1 -1
  37. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts +1 -1
  38. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js +4 -2
  39. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  40. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js +2 -6
  41. package/dist/dist-esm/calling-component-bindings/src/handlers/createTeamsCallHandlers.js.map +1 -1
  42. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.d.ts +1 -1
  43. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.js.map +1 -1
  44. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  45. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.js.map +1 -1
  46. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  47. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +46 -12
  48. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  49. package/dist/dist-esm/calling-component-bindings/src/participantsButtonSelector.js.map +1 -1
  50. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.js.map +1 -1
  51. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js +6 -3
  52. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js.map +1 -1
  53. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js.map +1 -1
  54. package/dist/dist-esm/calling-component-bindings/src/providers/index.js.map +1 -1
  55. package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.js.map +1 -1
  56. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts +6 -1
  57. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +26 -6
  58. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  59. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +3 -1
  60. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  61. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts +2 -1
  62. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +36 -14
  63. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  64. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +46 -8
  65. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  66. package/dist/dist-esm/calling-stateful-client/src/BetaToStableTypes.js.map +1 -1
  67. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts +1 -1
  68. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
  69. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js +65 -75
  70. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarativeCommon.js.map +1 -1
  71. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +6 -2
  72. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  73. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +1 -1
  74. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +18 -13
  75. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  76. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js +7 -8
  77. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js.map +1 -1
  78. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +74 -85
  79. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  80. package/dist/dist-esm/calling-stateful-client/src/CallIdHistory.js.map +1 -1
  81. package/dist/dist-esm/calling-stateful-client/src/CallIdRef.js.map +1 -1
  82. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +10 -7
  83. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  84. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js.map +1 -1
  85. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +1 -1
  86. package/dist/dist-esm/calling-stateful-client/src/Converter.js +12 -12
  87. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  88. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js +51 -57
  89. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  90. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js +14 -16
  91. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
  92. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.js.map +1 -1
  93. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js +3 -15
  94. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  95. package/dist/dist-esm/calling-stateful-client/src/LocalVideoStreamVideoEffectsSubscriber.js.map +1 -1
  96. package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
  97. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js +1 -3
  98. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js.map +1 -1
  99. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js.map +1 -1
  100. package/dist/dist-esm/calling-stateful-client/src/RaiseHandSubscriber.js.map +1 -1
  101. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js.map +1 -1
  102. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.js.map +1 -1
  103. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js +65 -67
  104. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  105. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js +33 -31
  106. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  107. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js +8 -11
  108. package/dist/dist-esm/calling-stateful-client/src/StreamUtilsLogging.js.map +1 -1
  109. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.d.ts +1 -1
  110. package/dist/dist-esm/calling-stateful-client/src/TeamsCallAgentDeclarative.js.map +1 -1
  111. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js +7 -8
  112. package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +1 -1
  113. package/dist/dist-esm/calling-stateful-client/src/TranscriptionSubscriber.js.map +1 -1
  114. package/dist/dist-esm/calling-stateful-client/src/TypeGuards.js.map +1 -1
  115. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js +3 -3
  116. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js.map +1 -1
  117. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js +6 -7
  118. package/dist/dist-esm/calling-stateful-client/src/VideoStreamRendererViewDeclarative.js.map +1 -1
  119. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  120. package/dist/dist-esm/calling-stateful-client/src/index.js.map +1 -1
  121. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js +4 -4
  122. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js.map +1 -1
  123. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js +3 -3
  124. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js.map +1 -1
  125. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js +13 -14
  126. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js.map +1 -1
  127. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts +2 -1
  128. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +5 -12
  129. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  130. package/dist/dist-esm/chat-component-bindings/src/hooks/useHandlers.js.map +1 -1
  131. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  132. package/dist/dist-esm/chat-component-bindings/src/hooks/useSelector.js.map +1 -1
  133. package/dist/dist-esm/chat-component-bindings/src/index.js.map +1 -1
  134. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +33 -15
  135. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  136. package/dist/dist-esm/chat-component-bindings/src/providers/ChatClientProvider.js.map +1 -1
  137. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js +1 -1
  138. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js.map +1 -1
  139. package/dist/dist-esm/chat-component-bindings/src/sendBoxSelector.js.map +1 -1
  140. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js +3 -7
  141. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js.map +1 -1
  142. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js +3 -1
  143. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js.map +1 -1
  144. package/dist/dist-esm/chat-component-bindings/src/utils/constants.js.map +1 -1
  145. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js +10 -3
  146. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  147. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
  148. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js +5 -9
  149. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  150. package/dist/dist-esm/chat-stateful-client/src/Constants.js.map +1 -1
  151. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js +7 -10
  152. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  153. package/dist/dist-esm/chat-stateful-client/src/Logger.js.map +1 -1
  154. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js +57 -67
  155. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js.map +1 -1
  156. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js +114 -128
  157. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js.map +1 -1
  158. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js +3 -1
  159. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js.map +1 -1
  160. package/dist/dist-esm/chat-stateful-client/src/index.js.map +1 -1
  161. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedIterator.js.map +1 -1
  162. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListMessages.js.map +1 -1
  163. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListParticipants.js.map +1 -1
  164. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListReadReceipts.js.map +1 -1
  165. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListThreads.js.map +1 -1
  166. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  167. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  168. package/dist/dist-esm/communication-react/src/mergedHooks.js.map +1 -1
  169. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js +3 -6
  170. package/dist/dist-esm/react-components/src/components/Announcer/Announcer.js.map +1 -1
  171. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerContext.js.map +1 -1
  172. package/dist/dist-esm/react-components/src/components/Announcer/AnnouncerMessage.js.map +1 -1
  173. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js +4 -10
  174. package/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js.map +1 -1
  175. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js +1 -1
  176. package/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js.map +1 -1
  177. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js +1 -1
  178. package/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js.map +1 -1
  179. package/dist/dist-esm/react-components/src/components/Announcer.js.map +1 -1
  180. package/dist/dist-esm/react-components/src/components/CameraButton.js +8 -19
  181. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  182. package/dist/dist-esm/react-components/src/components/Caption.js +2 -2
  183. package/dist/dist-esm/react-components/src/components/Caption.js.map +1 -1
  184. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js +9 -8
  185. package/dist/dist-esm/react-components/src/components/CaptionsBanner.js.map +1 -1
  186. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js +44 -22
  187. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +1 -1
  188. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.d.ts +2 -2
  189. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js +9 -6
  190. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js.map +1 -1
  191. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js +38 -23
  192. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  193. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts +1 -1
  194. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js +18 -10
  195. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  196. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +31 -39
  197. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
  198. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts +1 -1
  199. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js +73 -35
  200. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
  201. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts +1 -1
  202. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js +46 -33
  203. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  204. package/dist/dist-esm/react-components/src/components/ChatMessage/MentionRenderer.js.map +1 -1
  205. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js +18 -18
  206. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js.map +1 -1
  207. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js +7 -4
  208. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js.map +1 -1
  209. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js +2 -2
  210. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js.map +1 -1
  211. package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.js.map +1 -1
  212. package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.js.map +1 -1
  213. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.js.map +1 -1
  214. package/dist/dist-esm/react-components/src/components/ControlBar.js +10 -14
  215. package/dist/dist-esm/react-components/src/components/ControlBar.js.map +1 -1
  216. package/dist/dist-esm/react-components/src/components/ControlBarButton.d.ts +6 -0
  217. package/dist/dist-esm/react-components/src/components/ControlBarButton.js +14 -4
  218. package/dist/dist-esm/react-components/src/components/ControlBarButton.js.map +1 -1
  219. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js +3 -14
  220. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js.map +1 -1
  221. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js +4 -10
  222. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDenied.js.map +1 -1
  223. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js +14 -31
  224. package/dist/dist-esm/react-components/src/components/DevicePermissions/BrowserPermissionDeniedIOS.js.map +1 -1
  225. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js +5 -8
  226. package/dist/dist-esm/react-components/src/components/DevicePermissions/DevicePermissionDropdown.js.map +1 -1
  227. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js +24 -6
  228. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +1 -1
  229. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js +12 -20
  230. package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissionsScaffolding.js.map +1 -1
  231. package/dist/dist-esm/react-components/src/components/DevicesButton.js +19 -27
  232. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  233. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js +36 -44
  234. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  235. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js +4 -4
  236. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js.map +1 -1
  237. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js +2 -6
  238. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js.map +1 -1
  239. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js +6 -6
  240. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  241. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js +11 -23
  242. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js.map +1 -1
  243. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js +6 -4
  244. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js.map +1 -1
  245. package/dist/dist-esm/react-components/src/components/Drawer/index.js.map +1 -1
  246. package/dist/dist-esm/react-components/src/components/EndCallButton.js +3 -7
  247. package/dist/dist-esm/react-components/src/components/EndCallButton.js.map +1 -1
  248. package/dist/dist-esm/react-components/src/components/ErrorBar.js +9 -5
  249. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  250. package/dist/dist-esm/react-components/src/components/FileCard.js +2 -3
  251. package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
  252. package/dist/dist-esm/react-components/src/components/FileCardGroup.js +1 -1
  253. package/dist/dist-esm/react-components/src/components/FileCardGroup.js.map +1 -1
  254. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts +2 -0
  255. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js +19 -17
  256. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
  257. package/dist/dist-esm/react-components/src/components/FileUploadCards.js +8 -7
  258. package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +1 -1
  259. package/dist/dist-esm/react-components/src/components/GridLayout.js +37 -37
  260. package/dist/dist-esm/react-components/src/components/GridLayout.js.map +1 -1
  261. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js +2 -2
  262. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js.map +1 -1
  263. package/dist/dist-esm/react-components/src/components/HoldButton.js +1 -1
  264. package/dist/dist-esm/react-components/src/components/HoldButton.js.map +1 -1
  265. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js +7 -9
  266. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js.map +1 -1
  267. package/dist/dist-esm/react-components/src/components/ImageGallery.js +10 -13
  268. package/dist/dist-esm/react-components/src/components/ImageGallery.js.map +1 -1
  269. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js +8 -17
  270. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  271. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js +3 -5
  272. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js.map +1 -1
  273. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +29 -10
  274. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  275. package/dist/dist-esm/react-components/src/components/MentionPopover.js +19 -11
  276. package/dist/dist-esm/react-components/src/components/MentionPopover.js.map +1 -1
  277. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js +23 -36
  278. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js.map +1 -1
  279. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +3 -2
  280. package/dist/dist-esm/react-components/src/components/MessageThread.js +185 -104
  281. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  282. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js +17 -14
  283. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  284. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js +94 -101
  285. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js.map +1 -1
  286. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +15 -18
  287. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  288. package/dist/dist-esm/react-components/src/components/ParticipantList.js +59 -32
  289. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  290. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +46 -32
  291. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  292. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js +3 -3
  293. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js.map +1 -1
  294. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js +3 -3
  295. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js.map +1 -1
  296. package/dist/dist-esm/react-components/src/components/RaiseHandButton.js +6 -12
  297. package/dist/dist-esm/react-components/src/components/RaiseHandButton.js.map +1 -1
  298. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +48 -16
  299. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  300. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js +2 -2
  301. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js.map +1 -1
  302. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js +2 -2
  303. package/dist/dist-esm/react-components/src/components/ResponsiveVerticalGallery.js.map +1 -1
  304. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js +6 -14
  305. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  306. package/dist/dist-esm/react-components/src/components/SendBox.js +17 -19
  307. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  308. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js +2 -2
  309. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +1 -1
  310. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +1 -1
  311. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js +2 -4
  312. package/dist/dist-esm/react-components/src/components/StartCaptionsButton.js.map +1 -1
  313. package/dist/dist-esm/react-components/src/components/StreamMedia.js +3 -3
  314. package/dist/dist-esm/react-components/src/components/StreamMedia.js.map +1 -1
  315. package/dist/dist-esm/react-components/src/components/SystemMessage.js +2 -4
  316. package/dist/dist-esm/react-components/src/components/SystemMessage.js.map +1 -1
  317. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js +70 -32
  318. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/TextFieldWithMention.js.map +1 -1
  319. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js +52 -46
  320. package/dist/dist-esm/react-components/src/components/TextFieldWithMention/mentionTagUtils.js.map +1 -1
  321. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js +10 -10
  322. package/dist/dist-esm/react-components/src/components/TroubleshootingGuideErrorBar.js.map +1 -1
  323. package/dist/dist-esm/react-components/src/components/TypingIndicator.js +9 -6
  324. package/dist/dist-esm/react-components/src/components/TypingIndicator.js.map +1 -1
  325. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js +1 -1
  326. package/dist/dist-esm/react-components/src/components/UnsupportedBrowser.js.map +1 -1
  327. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js +1 -1
  328. package/dist/dist-esm/react-components/src/components/UnsupportedBrowserVersion.js.map +1 -1
  329. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js +4 -8
  330. package/dist/dist-esm/react-components/src/components/UnsupportedEnvironment.js.map +1 -1
  331. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js +1 -1
  332. package/dist/dist-esm/react-components/src/components/UnsupportedOperatingSystem.js.map +1 -1
  333. package/dist/dist-esm/react-components/src/components/VerticalGallery.js +19 -34
  334. package/dist/dist-esm/react-components/src/components/VerticalGallery.js.map +1 -1
  335. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js +3 -1
  336. package/dist/dist-esm/react-components/src/components/VideoEffects/PresetVideoEffectsItems.js.map +1 -1
  337. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +8 -12
  338. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
  339. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js +13 -17
  340. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js.map +1 -1
  341. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js +6 -2
  342. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.styles.js.map +1 -1
  343. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js +38 -16
  344. package/dist/dist-esm/react-components/src/components/VideoGallery/DefaultLayout.js.map +1 -1
  345. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js +14 -10
  346. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideo.js.map +1 -1
  347. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js +63 -25
  348. package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
  349. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.js +2 -2
  350. package/dist/dist-esm/react-components/src/components/VideoGallery/FocusContentLayout.js.map +1 -1
  351. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.d.ts +17 -0
  352. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js +127 -0
  353. package/dist/dist-esm/react-components/src/components/VideoGallery/LargeGalleryLayout.js.map +1 -0
  354. package/dist/dist-esm/react-components/src/components/VideoGallery/Layout.js.map +1 -1
  355. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js +7 -7
  356. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
  357. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.d.ts +1 -0
  358. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js +31 -8
  359. package/dist/dist-esm/react-components/src/components/VideoGallery/OverflowGallery.js.map +1 -1
  360. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js +8 -6
  361. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
  362. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.d.ts +2 -2
  363. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js +4 -12
  364. package/dist/dist-esm/react-components/src/components/VideoGallery/ScrollableHorizontalGallery.js.map +1 -1
  365. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js +58 -20
  366. package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js.map +1 -1
  367. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js +1 -6
  368. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/DefaultLayout.styles.js.map +1 -1
  369. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js +7 -32
  370. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideo.styles.js.map +1 -1
  371. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js +2 -11
  372. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/FloatingLocalVideoLayout.styles.js.map +1 -1
  373. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/Layout.styles.js.map +1 -1
  374. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/LocalScreenShare.styles.js.map +1 -1
  375. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteScreenShare.styles.js.map +1 -1
  376. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteVideoTile.styles.js.map +1 -1
  377. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.d.ts +2 -2
  378. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js +7 -14
  379. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/ScrollableHorizontalGallery.style.js.map +1 -1
  380. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js +10 -11
  381. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveHorizontalGallery.styles.js.map +1 -1
  382. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js +22 -28
  383. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js.map +1 -1
  384. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js +10 -5
  385. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  386. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +19 -32
  387. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  388. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.js.map +1 -1
  389. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +54 -26
  390. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  391. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +1 -1
  392. package/dist/dist-esm/react-components/src/components/VideoGallery.js +121 -36
  393. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  394. package/dist/dist-esm/react-components/src/components/VideoTile.js +34 -55
  395. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  396. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.js +2 -2
  397. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.js.map +1 -1
  398. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  399. package/dist/dist-esm/react-components/src/components/styles/BrowserPermissionDenied.styles.js.map +1 -1
  400. package/dist/dist-esm/react-components/src/components/styles/Captions.style.js.map +1 -1
  401. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js.map +1 -1
  402. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js +1 -5
  403. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  404. package/dist/dist-esm/react-components/src/components/styles/Common.style.js.map +1 -1
  405. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  406. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js.map +1 -1
  407. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js.map +1 -1
  408. package/dist/dist-esm/react-components/src/components/styles/GridLayout.styles.js.map +1 -1
  409. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js.map +1 -1
  410. package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.js.map +1 -1
  411. package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js +1 -4
  412. package/dist/dist-esm/react-components/src/components/styles/ImageGallery.style.js.map +1 -1
  413. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js +1 -4
  414. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
  415. package/dist/dist-esm/react-components/src/components/styles/MentionPopover.style.js.map +1 -1
  416. package/dist/dist-esm/react-components/src/components/styles/MessageStatusIndicator.styles.js.map +1 -1
  417. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +2 -8
  418. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  419. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js +0 -1
  420. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
  421. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js.map +1 -1
  422. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +2 -10
  423. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  424. package/dist/dist-esm/react-components/src/components/styles/SitePermissions.styles.js.map +1 -1
  425. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js +0 -3
  426. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js.map +1 -1
  427. package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.js.map +1 -1
  428. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js +0 -1
  429. package/dist/dist-esm/react-components/src/components/styles/TroubleshootingGuideErrorBar.styles.js.map +1 -1
  430. package/dist/dist-esm/react-components/src/components/styles/TypingIndicator.styles.js.map +1 -1
  431. package/dist/dist-esm/react-components/src/components/styles/UnsupportedEnvironment.styles.js.map +1 -1
  432. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js +0 -1
  433. package/dist/dist-esm/react-components/src/components/styles/VerticalGallery.styles.js.map +1 -1
  434. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js +3 -17
  435. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  436. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  437. package/dist/dist-esm/react-components/src/components/styles/v8StyleShim.js.map +1 -1
  438. package/dist/dist-esm/react-components/src/components/utils/Datetime.js +1 -4
  439. package/dist/dist-esm/react-components/src/components/utils/Datetime.js.map +1 -1
  440. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  441. package/dist/dist-esm/react-components/src/components/utils/delay.js.map +1 -1
  442. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  443. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js +4 -7
  444. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  445. package/dist/dist-esm/react-components/src/components/utils/keyboardNavigation.js.map +1 -1
  446. package/dist/dist-esm/react-components/src/components/utils/merge.js.map +1 -1
  447. package/dist/dist-esm/react-components/src/components/utils/overFlowGalleriesUtils.js.map +1 -1
  448. package/dist/dist-esm/react-components/src/components/utils/responsive.js +2 -2
  449. package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
  450. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js +10 -1
  451. package/dist/dist-esm/react-components/src/components/utils/useLongPress.js.map +1 -1
  452. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js +1 -3
  453. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js.map +1 -1
  454. package/dist/dist-esm/react-components/src/components/utils.js +13 -10
  455. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  456. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js +8 -6
  457. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js.map +1 -1
  458. package/dist/dist-esm/react-components/src/gallery/index.js.map +1 -1
  459. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  460. package/dist/dist-esm/react-components/src/identifiers/index.js.map +1 -1
  461. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  462. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +2 -0
  463. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  464. package/dist/dist-esm/react-components/src/localization/index.js.map +1 -1
  465. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/ComponentLocale.js +1 -3
  466. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/ComponentLocale.js.map +1 -1
  467. package/dist/dist-esm/react-components/src/localization/locales/ar-SA/strings.json +3 -2
  468. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/ComponentLocale.js +1 -3
  469. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/ComponentLocale.js.map +1 -1
  470. package/dist/dist-esm/react-components/src/localization/locales/cs-CZ/strings.json +3 -2
  471. package/dist/dist-esm/react-components/src/localization/locales/de-DE/ComponentLocale.js +1 -3
  472. package/dist/dist-esm/react-components/src/localization/locales/de-DE/ComponentLocale.js.map +1 -1
  473. package/dist/dist-esm/react-components/src/localization/locales/de-DE/strings.json +3 -2
  474. package/dist/dist-esm/react-components/src/localization/locales/en-GB/ComponentLocale.js +1 -3
  475. package/dist/dist-esm/react-components/src/localization/locales/en-GB/ComponentLocale.js.map +1 -1
  476. package/dist/dist-esm/react-components/src/localization/locales/en-GB/strings.json +3 -2
  477. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +2 -1
  478. package/dist/dist-esm/react-components/src/localization/locales/es-ES/ComponentLocale.js +1 -3
  479. package/dist/dist-esm/react-components/src/localization/locales/es-ES/ComponentLocale.js.map +1 -1
  480. package/dist/dist-esm/react-components/src/localization/locales/es-ES/strings.json +3 -2
  481. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/ComponentLocale.js +1 -3
  482. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/ComponentLocale.js.map +1 -1
  483. package/dist/dist-esm/react-components/src/localization/locales/fi-FI/strings.json +3 -2
  484. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/ComponentLocale.js +1 -3
  485. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/ComponentLocale.js.map +1 -1
  486. package/dist/dist-esm/react-components/src/localization/locales/fr-FR/strings.json +3 -2
  487. package/dist/dist-esm/react-components/src/localization/locales/he-IL/ComponentLocale.js +1 -3
  488. package/dist/dist-esm/react-components/src/localization/locales/he-IL/ComponentLocale.js.map +1 -1
  489. package/dist/dist-esm/react-components/src/localization/locales/he-IL/strings.json +3 -2
  490. package/dist/dist-esm/react-components/src/localization/locales/index.js +1 -3
  491. package/dist/dist-esm/react-components/src/localization/locales/index.js.map +1 -1
  492. package/dist/dist-esm/react-components/src/localization/locales/it-IT/ComponentLocale.js +1 -3
  493. package/dist/dist-esm/react-components/src/localization/locales/it-IT/ComponentLocale.js.map +1 -1
  494. package/dist/dist-esm/react-components/src/localization/locales/it-IT/strings.json +3 -2
  495. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/ComponentLocale.js +1 -3
  496. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/ComponentLocale.js.map +1 -1
  497. package/dist/dist-esm/react-components/src/localization/locales/ja-JP/strings.json +3 -2
  498. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/ComponentLocale.js +1 -3
  499. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/ComponentLocale.js.map +1 -1
  500. package/dist/dist-esm/react-components/src/localization/locales/ko-KR/strings.json +3 -2
  501. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/ComponentLocale.js +1 -3
  502. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/ComponentLocale.js.map +1 -1
  503. package/dist/dist-esm/react-components/src/localization/locales/nb-NO/strings.json +3 -2
  504. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/ComponentLocale.js +1 -3
  505. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/ComponentLocale.js.map +1 -1
  506. package/dist/dist-esm/react-components/src/localization/locales/nl-NL/strings.json +3 -2
  507. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/ComponentLocale.js +1 -3
  508. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/ComponentLocale.js.map +1 -1
  509. package/dist/dist-esm/react-components/src/localization/locales/pl-PL/strings.json +3 -2
  510. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/ComponentLocale.js +1 -3
  511. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/ComponentLocale.js.map +1 -1
  512. package/dist/dist-esm/react-components/src/localization/locales/pt-BR/strings.json +3 -2
  513. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/ComponentLocale.js +1 -3
  514. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/ComponentLocale.js.map +1 -1
  515. package/dist/dist-esm/react-components/src/localization/locales/ru-RU/strings.json +3 -2
  516. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/ComponentLocale.js +1 -3
  517. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/ComponentLocale.js.map +1 -1
  518. package/dist/dist-esm/react-components/src/localization/locales/sv-SE/strings.json +3 -2
  519. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/ComponentLocale.js +1 -3
  520. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/ComponentLocale.js.map +1 -1
  521. package/dist/dist-esm/react-components/src/localization/locales/tr-TR/strings.json +3 -2
  522. package/dist/dist-esm/react-components/src/localization/locales/utils.js.map +1 -1
  523. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/ComponentLocale.js +1 -3
  524. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/ComponentLocale.js.map +1 -1
  525. package/dist/dist-esm/react-components/src/localization/locales/zh-CN/strings.json +3 -2
  526. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/ComponentLocale.js +1 -3
  527. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/ComponentLocale.js.map +1 -1
  528. package/dist/dist-esm/react-components/src/localization/locales/zh-TW/strings.json +3 -2
  529. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js +3 -5
  530. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js.map +1 -1
  531. package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js +1 -1
  532. package/dist/dist-esm/react-components/src/theming/FluentV9ThemeProvider.js.map +1 -1
  533. package/dist/dist-esm/react-components/src/theming/icons.js +20 -26
  534. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  535. package/dist/dist-esm/react-components/src/theming/icons.styles.js.map +1 -1
  536. package/dist/dist-esm/react-components/src/theming/index.js.map +1 -1
  537. package/dist/dist-esm/react-components/src/theming/themeDuplicates.js.map +1 -1
  538. package/dist/dist-esm/react-components/src/theming/themeUtils.js.map +1 -1
  539. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  540. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js +1 -7
  541. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js.map +1 -1
  542. package/dist/dist-esm/react-components/src/types/CaptionsAvailableLanguageStrings.js.map +1 -1
  543. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  544. package/dist/dist-esm/react-components/src/types/CommunicationParticipant.js.map +1 -1
  545. package/dist/dist-esm/react-components/src/types/ComponentSlotStyle.js.map +1 -1
  546. package/dist/dist-esm/react-components/src/types/CustomStylesProps.js.map +1 -1
  547. package/dist/dist-esm/react-components/src/types/OnRender.js.map +1 -1
  548. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  549. package/dist/dist-esm/react-components/src/types/ReadReceiptsBySenderId.js.map +1 -1
  550. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  551. package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
  552. package/dist/dist-esm/react-composites/src/Logger.js.map +1 -1
  553. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts +35 -0
  554. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +61 -48
  555. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  556. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +4 -0
  557. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  558. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +12 -1
  559. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +129 -64
  560. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  561. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +32 -0
  562. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js +9 -1
  563. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  564. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.js.map +1 -1
  565. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.d.ts +18 -0
  566. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js +46 -0
  567. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallingSoundSubscriber.js.map +1 -0
  568. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/DiagnosticsForwarder.js.map +1 -1
  569. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js +1 -3
  570. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/OnFetchProfileCallback.js.map +1 -1
  571. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/ParticipantSubcriber.js.map +1 -1
  572. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.d.ts +1 -1
  573. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js +11 -5
  574. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/createHandlers.js.map +1 -1
  575. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts +1 -0
  576. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  577. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +1 -0
  578. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +88 -39
  579. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  580. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +44 -70
  581. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  582. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js +133 -141
  583. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallReadinessModal.js.map +1 -1
  584. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js +10 -18
  585. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js.map +1 -1
  586. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js +1 -7
  587. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageCameraDropdown.js.map +1 -1
  588. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js +1 -1
  589. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageErrorBar.js.map +1 -1
  590. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js +1 -7
  591. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ConfigurationPageMicDropdown.js.map +1 -1
  592. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js +5 -4
  593. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
  594. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js +4 -4
  595. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
  596. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js +2 -2
  597. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
  598. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js +34 -23
  599. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  600. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +36 -25
  601. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  602. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +25 -34
  603. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  604. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +49 -35
  605. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  606. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js +2 -2
  607. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js.map +1 -1
  608. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +2 -2
  609. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  610. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +29 -11
  611. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  612. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePaneProvider.js.map +1 -1
  613. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +3 -7
  614. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  615. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +13 -8
  616. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
  617. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.d.ts +1 -0
  618. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js +1 -1
  619. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js.map +1 -1
  620. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.d.ts +1 -0
  621. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +9 -3
  622. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  623. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +19 -11
  624. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  625. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js +5 -2
  626. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  627. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.d.ts +1 -0
  628. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +14 -7
  629. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  630. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js +5 -2
  631. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
  632. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js +1 -1
  633. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +1 -1
  634. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js +1 -1
  635. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js.map +1 -1
  636. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +3 -1
  637. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  638. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js +8 -8
  639. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  640. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +10 -4
  641. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  642. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.js.map +1 -1
  643. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js +1 -1
  644. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js.map +1 -1
  645. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts +1 -0
  646. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  647. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +1 -0
  648. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +20 -11
  649. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  650. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts +8 -0
  651. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +95 -42
  652. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  653. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +13 -7
  654. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  655. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +15 -7
  656. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  657. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js +3 -3
  658. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  659. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js +23 -23
  660. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/TransferPage.js.map +1 -1
  661. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js +3 -3
  662. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/UnsupportedBrowser.js.map +1 -1
  663. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.d.ts +12 -10
  664. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js +1 -1
  665. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js.map +1 -1
  666. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.d.ts +8 -6
  667. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js +2 -1
  668. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/activeVideoBackgroundEffectSelector.js.map +1 -1
  669. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  670. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.d.ts +11 -9
  671. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.js.map +1 -1
  672. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.d.ts +11 -9
  673. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js +1 -4
  674. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js.map +1 -1
  675. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.d.ts +11 -9
  676. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.js.map +1 -1
  677. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.d.ts +11 -9
  678. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/deviceCountSelector.js.map +1 -1
  679. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.d.ts +12 -10
  680. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js +1 -1
  681. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js.map +1 -1
  682. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts +8 -6
  683. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js +7 -5
  684. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  685. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.d.ts +13 -11
  686. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js +1 -1
  687. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js.map +1 -1
  688. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.d.ts +19 -17
  689. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js +7 -1
  690. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
  691. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.d.ts +12 -10
  692. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js +4 -4
  693. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js.map +1 -1
  694. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.d.ts +6 -4
  695. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js +1 -1
  696. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js.map +1 -1
  697. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.d.ts +26 -22
  698. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js +4 -4
  699. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js.map +1 -1
  700. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.d.ts +12 -10
  701. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js +1 -1
  702. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js.map +1 -1
  703. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.d.ts +15 -13
  704. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.js.map +1 -1
  705. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js +1 -1
  706. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js.map +1 -1
  707. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js +2 -6
  708. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js.map +1 -1
  709. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.d.ts +18 -8
  710. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js +95 -27
  711. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  712. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.js.map +1 -1
  713. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  714. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js +1 -4
  715. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js.map +1 -1
  716. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +1 -1
  717. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js +1 -4
  718. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js.map +1 -1
  719. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.d.ts +1 -1
  720. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.js +13 -10
  721. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.js.map +1 -1
  722. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.d.ts +2 -1
  723. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js +3 -3
  724. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js.map +1 -1
  725. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.js.map +1 -1
  726. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NoticePage.styles.js.map +1 -1
  727. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js +0 -1
  728. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js.map +1 -1
  729. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js +6 -24
  730. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/TransferPage.styles.js.map +1 -1
  731. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +2 -10
  732. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
  733. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CapabilityChangedNotificationTracking.js.map +1 -1
  734. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/ErrorTracking.js.map +1 -1
  735. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js +9 -11
  736. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/MediaGalleryUtils.js.map +1 -1
  737. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js +10 -10
  738. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js.map +1 -1
  739. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js +2 -2
  740. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackErrors.js.map +1 -1
  741. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +2 -2
  742. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +35 -22
  743. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  744. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/index.js.map +1 -1
  745. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +34 -0
  746. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +84 -27
  747. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  748. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js +1 -1
  749. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButton.js.map +1 -1
  750. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js +9 -7
  751. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/ChatButtonWithUnreadMessagesBadge.js.map +1 -1
  752. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js +3 -6
  753. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/NotificationIcon.js.map +1 -1
  754. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton/useUnreadMessagesTracker.js.map +1 -1
  755. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  756. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +4 -2
  757. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +45 -9
  758. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  759. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +1 -1
  760. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  761. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  762. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +1 -1
  763. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  764. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js +1 -1
  765. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js.map +1 -1
  766. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/hooks/useCallWithChatCompositeStrings.js.map +1 -1
  767. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.js.map +1 -1
  768. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js +1 -1
  769. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js.map +1 -1
  770. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +2 -0
  771. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +4 -1
  772. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  773. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js.map +1 -1
  774. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js +2 -2
  775. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  776. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js +3 -5
  777. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js.map +1 -1
  778. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +41 -32
  779. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  780. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js +1 -1
  781. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +1 -1
  782. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js +3 -5
  783. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js.map +1 -1
  784. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  785. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts +3 -3
  786. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +50 -42
  787. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  788. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js +15 -20
  789. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +1 -1
  790. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts +3 -3
  791. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  792. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  793. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.js.map +1 -1
  794. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js +11 -6
  795. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js.map +1 -1
  796. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.js.map +1 -1
  797. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +1 -1
  798. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js +3 -5
  799. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js.map +1 -1
  800. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js +10 -2
  801. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  802. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.js.map +1 -1
  803. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js +1 -1
  804. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js.map +1 -1
  805. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  806. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  807. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.d.ts +8 -8
  808. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js +3 -5
  809. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js.map +1 -1
  810. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js +2 -6
  811. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
  812. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js +9 -9
  813. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  814. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js +23 -25
  815. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  816. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js.map +1 -1
  817. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js +8 -3
  818. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  819. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js +5 -14
  820. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  821. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js +9 -23
  822. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  823. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +1 -1
  824. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +6 -8
  825. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -1
  826. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js +12 -16
  827. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
  828. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js +1 -1
  829. package/dist/dist-esm/react-composites/src/composites/common/CaptionsSettingsModal.js.map +1 -1
  830. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js +1 -5
  831. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js.map +1 -1
  832. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +63 -41
  833. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  834. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js +36 -35
  835. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js.map +1 -1
  836. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +104 -69
  837. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  838. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js +1 -1
  839. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/PeopleButton.js.map +1 -1
  840. package/dist/dist-esm/react-composites/src/composites/common/ConvertContextualMenuItemToDrawerMenuItem.js.map +1 -1
  841. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionSettingsDrawer.js +5 -7
  842. package/dist/dist-esm/react-composites/src/composites/common/Drawer/CaptionSettingsDrawer.js.map +1 -1
  843. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +85 -113
  844. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  845. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.styles.js.map +1 -1
  846. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  847. package/dist/dist-esm/react-composites/src/composites/common/Drawer/captionSettingsDrawer.styles.js.map +1 -1
  848. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js +1 -1
  849. package/dist/dist-esm/react-composites/src/composites/common/HiddenFocusStartPoint.js.map +1 -1
  850. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.d.ts +11 -0
  851. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +40 -12
  852. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  853. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js +1 -1
  854. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -1
  855. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +11 -14
  856. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  857. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +19 -8
  858. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  859. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js +7 -15
  860. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +1 -1
  861. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js.map +1 -1
  862. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js +7 -15
  863. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  864. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js +10 -8
  865. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  866. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +16 -11
  867. package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
  868. package/dist/dist-esm/react-composites/src/composites/common/adapters.js.map +1 -1
  869. package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
  870. package/dist/dist-esm/react-composites/src/composites/common/icons.js +3 -3
  871. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  872. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependency.js.map +1 -1
  873. package/dist/dist-esm/react-composites/src/composites/common/resolveVideoEffectDependencyLazy.js.map +1 -1
  874. package/dist/dist-esm/react-composites/src/composites/common/styles/Composite.styles.js.map +1 -1
  875. package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.js.map +1 -1
  876. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js +13 -12
  877. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js.map +1 -1
  878. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js +12 -51
  879. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  880. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js +6 -29
  881. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  882. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js +4 -22
  883. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js.map +1 -1
  884. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.d.ts +0 -10
  885. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  886. package/dist/dist-esm/react-composites/src/composites/common/utils.js +17 -12
  887. package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
  888. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  889. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js +2 -2
  890. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js.map +1 -1
  891. package/dist/dist-esm/react-composites/src/composites/localization/index.js.map +1 -1
  892. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/CompositeLocale.js.map +1 -1
  893. package/dist/dist-esm/react-composites/src/composites/localization/locales/ar-SA/strings.json +6 -5
  894. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/CompositeLocale.js.map +1 -1
  895. package/dist/dist-esm/react-composites/src/composites/localization/locales/cs-CZ/strings.json +6 -5
  896. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/CompositeLocale.js.map +1 -1
  897. package/dist/dist-esm/react-composites/src/composites/localization/locales/de-DE/strings.json +6 -5
  898. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/CompositeLocale.js.map +1 -1
  899. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-GB/strings.json +6 -5
  900. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +1 -0
  901. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/CompositeLocale.js.map +1 -1
  902. package/dist/dist-esm/react-composites/src/composites/localization/locales/es-ES/strings.json +6 -5
  903. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/CompositeLocale.js.map +1 -1
  904. package/dist/dist-esm/react-composites/src/composites/localization/locales/fi-FI/strings.json +6 -5
  905. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/CompositeLocale.js.map +1 -1
  906. package/dist/dist-esm/react-composites/src/composites/localization/locales/fr-FR/strings.json +6 -5
  907. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/CompositeLocale.js.map +1 -1
  908. package/dist/dist-esm/react-composites/src/composites/localization/locales/he-IL/strings.json +6 -5
  909. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
  910. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/CompositeLocale.js.map +1 -1
  911. package/dist/dist-esm/react-composites/src/composites/localization/locales/it-IT/strings.json +6 -5
  912. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/CompositeLocale.js.map +1 -1
  913. package/dist/dist-esm/react-composites/src/composites/localization/locales/ja-JP/strings.json +6 -5
  914. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/CompositeLocale.js.map +1 -1
  915. package/dist/dist-esm/react-composites/src/composites/localization/locales/ko-KR/strings.json +6 -5
  916. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/CompositeLocale.js.map +1 -1
  917. package/dist/dist-esm/react-composites/src/composites/localization/locales/nb-NO/strings.json +6 -5
  918. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/CompositeLocale.js.map +1 -1
  919. package/dist/dist-esm/react-composites/src/composites/localization/locales/nl-NL/strings.json +6 -5
  920. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/CompositeLocale.js.map +1 -1
  921. package/dist/dist-esm/react-composites/src/composites/localization/locales/pl-PL/strings.json +6 -5
  922. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/CompositeLocale.js.map +1 -1
  923. package/dist/dist-esm/react-composites/src/composites/localization/locales/pt-BR/strings.json +6 -5
  924. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/CompositeLocale.js.map +1 -1
  925. package/dist/dist-esm/react-composites/src/composites/localization/locales/ru-RU/strings.json +6 -5
  926. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/CompositeLocale.js.map +1 -1
  927. package/dist/dist-esm/react-composites/src/composites/localization/locales/sv-SE/strings.json +6 -5
  928. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/CompositeLocale.js.map +1 -1
  929. package/dist/dist-esm/react-composites/src/composites/localization/locales/tr-TR/strings.json +6 -5
  930. package/dist/dist-esm/react-composites/src/composites/localization/locales/utils.js.map +1 -1
  931. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/CompositeLocale.js.map +1 -1
  932. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-CN/strings.json +6 -5
  933. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/CompositeLocale.js.map +1 -1
  934. package/dist/dist-esm/react-composites/src/composites/localization/locales/zh-TW/strings.json +6 -5
  935. package/dist/dist-esm/react-composites/src/index-public.js.map +1 -1
  936. package/package.json +2 -2
@@ -9,11 +9,7 @@ import { SHORT_VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM, SMALL_FLOATING_MODAL_SI
9
9
  *
10
10
  * @private
11
11
  */
12
- export const SHORT_VERTICAL_GALLERY_TILE_SIZE_REM = {
13
- minHeight: 5.625,
14
- maxHeight: 9,
15
- width: 9
16
- };
12
+ export const SHORT_VERTICAL_GALLERY_TILE_SIZE_REM = { minHeight: 5.625, maxHeight: 9, width: 9 };
17
13
  /**
18
14
  * VerticalGallery tile size in rem:
19
15
  *
@@ -22,11 +18,7 @@ export const SHORT_VERTICAL_GALLERY_TILE_SIZE_REM = {
22
18
  *
23
19
  * @private
24
20
  */
25
- export const VERTICAL_GALLERY_TILE_SIZE_REM = {
26
- minHeight: 6.75,
27
- maxHeight: 11,
28
- width: 11
29
- };
21
+ export const VERTICAL_GALLERY_TILE_SIZE_REM = { minHeight: 6.75, maxHeight: 11, width: 11 };
30
22
  /**
31
23
  * Styles for the VerticalGallery's container set in parent.
32
24
  *
@@ -36,19 +28,25 @@ export const VERTICAL_GALLERY_TILE_SIZE_REM = {
36
28
  * @returns Style set for VerticalGallery container.
37
29
  */
38
30
  export const verticalGalleryContainerStyle = (shouldFloatLocalVideo, isNarrow, isShort) => {
39
- return isNarrow && isShort ? {
40
- width: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,
41
- height: shouldFloatLocalVideo ? `calc(100% - ${SMALL_FLOATING_MODAL_SIZE_REM.height}rem)` : '100%',
42
- paddingBottom: '0.5rem'
43
- } : !isNarrow && isShort ? {
44
- width: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,
45
- height: shouldFloatLocalVideo ? `calc(100% - ${SHORT_VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM.height}rem)` : '100%',
46
- paddingBottom: '0.5rem'
47
- } : {
48
- width: `${VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,
49
- height: shouldFloatLocalVideo ? `calc(100% - ${VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM.height}rem)` : '100%',
50
- paddingBottom: '0.5rem'
51
- };
31
+ return isNarrow && isShort
32
+ ? {
33
+ width: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,
34
+ height: shouldFloatLocalVideo ? `calc(100% - ${SMALL_FLOATING_MODAL_SIZE_REM.height}rem)` : '100%',
35
+ paddingBottom: '0.5rem'
36
+ }
37
+ : !isNarrow && isShort
38
+ ? {
39
+ width: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,
40
+ height: shouldFloatLocalVideo
41
+ ? `calc(100% - ${SHORT_VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM.height}rem)`
42
+ : '100%',
43
+ paddingBottom: '0.5rem'
44
+ }
45
+ : {
46
+ width: `${VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,
47
+ height: shouldFloatLocalVideo ? `calc(100% - ${VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM.height}rem)` : '100%',
48
+ paddingBottom: '0.5rem'
49
+ };
52
50
  };
53
51
  /**
54
52
  * @private
@@ -76,10 +74,6 @@ export const VERTICAL_GALLERY_TILE_STYLE = {
76
74
  * @private
77
75
  */
78
76
  export const verticalGalleryStyle = (isShort) => {
79
- return isShort ? {
80
- children: SHORT_VERTICAL_GALLERY_TILE_STYLE
81
- } : {
82
- children: VERTICAL_GALLERY_TILE_STYLE
83
- };
77
+ return isShort ? { children: SHORT_VERTICAL_GALLERY_TILE_STYLE } : { children: VERTICAL_GALLERY_TILE_STYLE };
84
78
  };
85
79
  //# sourceMappingURL=VideoGalleryResponsiveVerticalGallery.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VideoGalleryResponsiveVerticalGallery.styles.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC,OAAO,EAAE,8CAA8C,EAAE,6BAA6B,EAAE,wCAAwC,EAAE,MAAM,6BAA6B,CAAC;AAEtK;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG;IAClD,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;CACT,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,EAAE;CACV,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,qBAA8B,EAAE,QAAiB,EAAE,OAAgB,EAAU,EAAE;IAC3H,OAAO,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;QAC3B,KAAK,EAAE,GAAG,oCAAoC,CAAC,KAAK,KAAK;QACzD,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,eAAe,6BAA6B,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM;QAClG,aAAa,EAAE,QAAQ;KACxB,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;QACzB,KAAK,EAAE,GAAG,oCAAoC,CAAC,KAAK,KAAK;QACzD,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,eAAe,8CAA8C,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM;QACnH,aAAa,EAAE,QAAQ;KACxB,CAAC,CAAC,CAAC;QACF,KAAK,EAAE,GAAG,8BAA8B,CAAC,KAAK,KAAK;QACnD,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,eAAe,wCAAwC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM;QAC7G,aAAa,EAAE,QAAQ;KACxB,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,SAAS,EAAE,GAAG,oCAAoC,CAAC,SAAS,KAAK;IACjE,QAAQ,EAAE,GAAG,oCAAoC,CAAC,KAAK,KAAK;IAC5D,SAAS,EAAE,GAAG,oCAAoC,CAAC,SAAS,KAAK;IACjE,QAAQ,EAAE,GAAG,oCAAoC,CAAC,KAAK,KAAK;IAC5D,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,SAAS,EAAE,GAAG,8BAA8B,CAAC,SAAS,KAAK;IAC3D,QAAQ,EAAE,GAAG,8BAA8B,CAAC,KAAK,KAAK;IACtD,SAAS,EAAE,GAAG,8BAA8B,CAAC,SAAS,KAAK;IAC3D,QAAQ,EAAE,GAAG,8BAA8B,CAAC,KAAK,KAAK;IACtD,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAyB,EAAE;IAC9E,OAAO,OAAO,CAAC,CAAC,CAAC;QACf,QAAQ,EAAE,iCAAiC;KAC5C,CAAC,CAAC,CAAC;QACF,QAAQ,EAAE,2BAA2B;KACtC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IStyle } from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport { VerticalGalleryStyles } from '../../VerticalGallery';\nimport { SHORT_VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM, SMALL_FLOATING_MODAL_SIZE_REM, VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM } from './FloatingLocalVideo.styles';\n\n/**\n * VerticalGallery tile size in rem:\n *\n * min - smallest possible size of the tile (90px)\n * max - Largest size we want the vertical tiles (144px)\n *\n * @private\n */\nexport const SHORT_VERTICAL_GALLERY_TILE_SIZE_REM = {\n minHeight: 5.625,\n maxHeight: 9,\n width: 9\n};\n\n/**\n * VerticalGallery tile size in rem:\n *\n * min - smallest possible size of the tile (90px)\n * max - Largest size we want the vertical tiles (144px)\n *\n * @private\n */\nexport const VERTICAL_GALLERY_TILE_SIZE_REM = {\n minHeight: 6.75,\n maxHeight: 11,\n width: 11\n};\n\n/**\n * Styles for the VerticalGallery's container set in parent.\n *\n * width is being increased by 1rem to account for the gap width desired for the VerticalGallery.\n *\n * @param shouldFloatLocalVideo whether rendered in floating layout or not\n * @returns Style set for VerticalGallery container.\n */\nexport const verticalGalleryContainerStyle = (shouldFloatLocalVideo: boolean, isNarrow: boolean, isShort: boolean): IStyle => {\n return isNarrow && isShort ? {\n width: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n height: shouldFloatLocalVideo ? `calc(100% - ${SMALL_FLOATING_MODAL_SIZE_REM.height}rem)` : '100%',\n paddingBottom: '0.5rem'\n } : !isNarrow && isShort ? {\n width: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n height: shouldFloatLocalVideo ? `calc(100% - ${SHORT_VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM.height}rem)` : '100%',\n paddingBottom: '0.5rem'\n } : {\n width: `${VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n height: shouldFloatLocalVideo ? `calc(100% - ${VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM.height}rem)` : '100%',\n paddingBottom: '0.5rem'\n };\n};\n\n/**\n * @private\n */\nexport const SHORT_VERTICAL_GALLERY_TILE_STYLE = {\n minHeight: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.minHeight}rem`,\n minWidth: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n maxHeight: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.maxHeight}rem`,\n maxWidth: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n width: '100%',\n height: '100%'\n};\n\n/**\n * @private\n */\nexport const VERTICAL_GALLERY_TILE_STYLE = {\n minHeight: `${VERTICAL_GALLERY_TILE_SIZE_REM.minHeight}rem`,\n minWidth: `${VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n maxHeight: `${VERTICAL_GALLERY_TILE_SIZE_REM.maxHeight}rem`,\n maxWidth: `${VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n width: '100%',\n height: '100%'\n};\n\n/**\n * @private\n */\nexport const verticalGalleryStyle = (isShort: boolean): VerticalGalleryStyles => {\n return isShort ? {\n children: SHORT_VERTICAL_GALLERY_TILE_STYLE\n } : {\n children: VERTICAL_GALLERY_TILE_STYLE\n };\n};\"../../../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"VideoGalleryResponsiveVerticalGallery.styles.js","sourceRoot":"","sources":["../../../../../../../../react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC,OAAO,EACL,8CAA8C,EAC9C,6BAA6B,EAC7B,wCAAwC,EACzC,MAAM,6BAA6B,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAEjG;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAE5F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,qBAA8B,EAC9B,QAAiB,EACjB,OAAgB,EACR,EAAE;IACV,OAAO,QAAQ,IAAI,OAAO;QACxB,CAAC,CAAC;YACE,KAAK,EAAE,GAAG,oCAAoC,CAAC,KAAK,KAAK;YACzD,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,eAAe,6BAA6B,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM;YAClG,aAAa,EAAE,QAAQ;SACxB;QACH,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO;YACtB,CAAC,CAAC;gBACE,KAAK,EAAE,GAAG,oCAAoC,CAAC,KAAK,KAAK;gBACzD,MAAM,EAAE,qBAAqB;oBAC3B,CAAC,CAAC,eAAe,8CAA8C,CAAC,MAAM,MAAM;oBAC5E,CAAC,CAAC,MAAM;gBACV,aAAa,EAAE,QAAQ;aACxB;YACH,CAAC,CAAC;gBACE,KAAK,EAAE,GAAG,8BAA8B,CAAC,KAAK,KAAK;gBACnD,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,eAAe,wCAAwC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM;gBAC7G,aAAa,EAAE,QAAQ;aACxB,CAAC;AACR,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,SAAS,EAAE,GAAG,oCAAoC,CAAC,SAAS,KAAK;IACjE,QAAQ,EAAE,GAAG,oCAAoC,CAAC,KAAK,KAAK;IAC5D,SAAS,EAAE,GAAG,oCAAoC,CAAC,SAAS,KAAK;IACjE,QAAQ,EAAE,GAAG,oCAAoC,CAAC,KAAK,KAAK;IAC5D,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,SAAS,EAAE,GAAG,8BAA8B,CAAC,SAAS,KAAK;IAC3D,QAAQ,EAAE,GAAG,8BAA8B,CAAC,KAAK,KAAK;IACtD,SAAS,EAAE,GAAG,8BAA8B,CAAC,SAAS,KAAK;IAC3D,QAAQ,EAAE,GAAG,8BAA8B,CAAC,KAAK,KAAK;IACtD,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAyB,EAAE;IAC9E,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC;AAC/G,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IStyle } from '@fluentui/react';\nimport { _pxToRem } from '@internal/acs-ui-common';\nimport { VerticalGalleryStyles } from '../../VerticalGallery';\nimport {\n SHORT_VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM,\n SMALL_FLOATING_MODAL_SIZE_REM,\n VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM\n} from './FloatingLocalVideo.styles';\n\n/**\n * VerticalGallery tile size in rem:\n *\n * min - smallest possible size of the tile (90px)\n * max - Largest size we want the vertical tiles (144px)\n *\n * @private\n */\nexport const SHORT_VERTICAL_GALLERY_TILE_SIZE_REM = { minHeight: 5.625, maxHeight: 9, width: 9 };\n\n/**\n * VerticalGallery tile size in rem:\n *\n * min - smallest possible size of the tile (90px)\n * max - Largest size we want the vertical tiles (144px)\n *\n * @private\n */\nexport const VERTICAL_GALLERY_TILE_SIZE_REM = { minHeight: 6.75, maxHeight: 11, width: 11 };\n\n/**\n * Styles for the VerticalGallery's container set in parent.\n *\n * width is being increased by 1rem to account for the gap width desired for the VerticalGallery.\n *\n * @param shouldFloatLocalVideo whether rendered in floating layout or not\n * @returns Style set for VerticalGallery container.\n */\nexport const verticalGalleryContainerStyle = (\n shouldFloatLocalVideo: boolean,\n isNarrow: boolean,\n isShort: boolean\n): IStyle => {\n return isNarrow && isShort\n ? {\n width: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n height: shouldFloatLocalVideo ? `calc(100% - ${SMALL_FLOATING_MODAL_SIZE_REM.height}rem)` : '100%',\n paddingBottom: '0.5rem'\n }\n : !isNarrow && isShort\n ? {\n width: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n height: shouldFloatLocalVideo\n ? `calc(100% - ${SHORT_VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM.height}rem)`\n : '100%',\n paddingBottom: '0.5rem'\n }\n : {\n width: `${VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n height: shouldFloatLocalVideo ? `calc(100% - ${VERTICAL_GALLERY_FLOATING_MODAL_SIZE_REM.height}rem)` : '100%',\n paddingBottom: '0.5rem'\n };\n};\n\n/**\n * @private\n */\nexport const SHORT_VERTICAL_GALLERY_TILE_STYLE = {\n minHeight: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.minHeight}rem`,\n minWidth: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n maxHeight: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.maxHeight}rem`,\n maxWidth: `${SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n width: '100%',\n height: '100%'\n};\n\n/**\n * @private\n */\nexport const VERTICAL_GALLERY_TILE_STYLE = {\n minHeight: `${VERTICAL_GALLERY_TILE_SIZE_REM.minHeight}rem`,\n minWidth: `${VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n maxHeight: `${VERTICAL_GALLERY_TILE_SIZE_REM.maxHeight}rem`,\n maxWidth: `${VERTICAL_GALLERY_TILE_SIZE_REM.width}rem`,\n width: '100%',\n height: '100%'\n};\n\n/**\n * @private\n */\nexport const verticalGalleryStyle = (isShort: boolean): VerticalGalleryStyles => {\n return isShort ? { children: SHORT_VERTICAL_GALLERY_TILE_STYLE } : { children: VERTICAL_GALLERY_TILE_STYLE };\n};\n\"../../../../../acs-ui-common/src\""]}
@@ -25,10 +25,7 @@ const useVideoStreamLifecycleMaintainer = (props) => {
25
25
  useEffect(() => {
26
26
  var _a;
27
27
  if (isStreamAvailable && !renderElementExists) {
28
- (_a = onCreateStreamView === null || onCreateStreamView === void 0 ? void 0 : onCreateStreamView({
29
- isMirrored,
30
- scalingMode
31
- })) === null || _a === void 0 ? void 0 : _a.then(result => {
28
+ (_a = onCreateStreamView === null || onCreateStreamView === void 0 ? void 0 : onCreateStreamView({ isMirrored, scalingMode })) === null || _a === void 0 ? void 0 : _a.then((result) => {
32
29
  result && setVideoStreamViewResult(result);
33
30
  });
34
31
  }
@@ -41,7 +38,15 @@ const useVideoStreamLifecycleMaintainer = (props) => {
41
38
  }
42
39
  }
43
40
  };
44
- }, [isMirrored, isScreenSharingOn, isStreamAvailable, onCreateStreamView, onDisposeStreamView, renderElementExists, scalingMode]);
41
+ }, [
42
+ isMirrored,
43
+ isScreenSharingOn,
44
+ isStreamAvailable,
45
+ onCreateStreamView,
46
+ onDisposeStreamView,
47
+ renderElementExists,
48
+ scalingMode
49
+ ]);
45
50
  // The execution order for above useEffect is onCreateRemoteStreamView =>(async time gap) RenderElement generated => element disposed => onDisposeRemoteStreamView
46
51
  // Element disposed could happen during async time gap, which still cause leaks for unused renderElement.
47
52
  // Need to do an entire cleanup when remoteTile gets disposed and make sure element gets correctly disposed
@@ -1 +1 @@
1
- {"version":3,"file":"useVideoStreamLifecycleMaintainer.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { useEffect, useMemo, useState } from 'react';\nimport { VideoStreamOptions, CreateVideoStreamViewResult, ViewScalingMode } from '../../types';\n\n/** @private */\nexport interface VideoStreamLifecycleMaintainerExtendableProps {\n isStreamAvailable?: boolean;\n renderElementExists?: boolean;\n isMirrored?: boolean;\n scalingMode?: ViewScalingMode;\n isScreenSharingOn?: boolean;\n}\ninterface VideoStreamLifecycleMaintainerProps extends VideoStreamLifecycleMaintainerExtendableProps {\n onCreateStreamView: (options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult> | undefined;\n onDisposeStreamView: () => void | undefined;\n}\n\n/**\n * Helper hook to maintain the video stream lifecycle. This calls onCreateStreamView and onDisposeStreamView\n * appropriately based on react lifecycle events and prop changes.\n *\n * @remarks\n *\n * Notes on handling changes to scaling mode:\n *\n * Ideally we have access to the original StreamRenderView and can call view.updateScalingMode() and do not need to recreate the stream view.\n * However, to support backwards compat we cannot guarantee this. If we don't have access to the original StreamRenderView we need to dispose\n * the old view and create a new one.\n *\n * Supporting both of these scenarios became too complex and fragile. When we introduce a breaking change this should be update to ensure that\n * onCreateStreamView _must_ return a view object with updateScalingMode and update logic in this hook to call view.updateScalingMode instead\n * of recreating the stream.\n *\n * @private\n */\nconst useVideoStreamLifecycleMaintainer = (props: VideoStreamLifecycleMaintainerProps): CreateVideoStreamViewResult | undefined => {\n const {\n isMirrored,\n isScreenSharingOn,\n isStreamAvailable,\n onCreateStreamView,\n onDisposeStreamView,\n renderElementExists,\n scalingMode\n } = props;\n const [videoStreamViewResult, setVideoStreamViewResult] = useState<CreateVideoStreamViewResult | undefined>();\n useEffect(() => {\n if (isStreamAvailable && !renderElementExists) {\n onCreateStreamView?.({\n isMirrored,\n scalingMode\n })?.then(result => {\n result && setVideoStreamViewResult(result);\n });\n }\n\n // Always clean up element to make tile up to date and be able to dispose correctly\n return () => {\n if (renderElementExists) {\n // TODO: Remove `if isScreenSharingOn` when we isolate dispose behavior for screen share\n if (!isScreenSharingOn) {\n onDisposeStreamView?.();\n }\n }\n };\n }, [isMirrored, isScreenSharingOn, isStreamAvailable, onCreateStreamView, onDisposeStreamView, renderElementExists, scalingMode]);\n\n // The execution order for above useEffect is onCreateRemoteStreamView =>(async time gap) RenderElement generated => element disposed => onDisposeRemoteStreamView\n // Element disposed could happen during async time gap, which still cause leaks for unused renderElement.\n // Need to do an entire cleanup when remoteTile gets disposed and make sure element gets correctly disposed\n useEffect(() => {\n return () => {\n // TODO: Remove `if isScreenSharingOn` when we isolate dispose behavior for screen share\n if (!isScreenSharingOn) {\n onDisposeStreamView?.();\n }\n };\n }, [isScreenSharingOn, onDisposeStreamView]);\n return videoStreamViewResult;\n};\n\n/** @private */\nexport interface LocalVideoStreamLifecycleMaintainerProps extends VideoStreamLifecycleMaintainerExtendableProps {\n onCreateLocalStreamView?: (options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>;\n onDisposeLocalStreamView?: () => void;\n}\n\n/**\n * Extension of {@link useVideoStreamLifecycleMaintainer} specifically for local video streams\n *\n * @private\n */\nexport const useLocalVideoStreamLifecycleMaintainer = (props: LocalVideoStreamLifecycleMaintainerProps): CreateVideoStreamViewResult | undefined => {\n const {\n onCreateLocalStreamView,\n onDisposeLocalStreamView\n } = props;\n const onCreateStreamView = useMemo(() => (options?: VideoStreamOptions) => {\n return onCreateLocalStreamView?.(options);\n }, [onCreateLocalStreamView]);\n const onDisposeStreamView = useMemo(() => () => {\n onDisposeLocalStreamView?.();\n }, [onDisposeLocalStreamView]);\n return useVideoStreamLifecycleMaintainer({\n ...props,\n onCreateStreamView,\n onDisposeStreamView\n });\n};\n\n/** @private */\nexport interface RemoteVideoStreamLifecycleMaintainerProps extends VideoStreamLifecycleMaintainerExtendableProps {\n onCreateRemoteStreamView?: (userId: string, options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>;\n onDisposeRemoteStreamView?: (userId: string) => Promise<void>;\n remoteParticipantId: string;\n}\n\n/**\n * Extension of {@link useVideoStreamLifecycleMaintainer} specifically for remote video streams\n *\n * @private\n */\nexport const useRemoteVideoStreamLifecycleMaintainer = (props: RemoteVideoStreamLifecycleMaintainerProps): CreateVideoStreamViewResult | undefined => {\n const {\n remoteParticipantId,\n onCreateRemoteStreamView,\n onDisposeRemoteStreamView\n } = props;\n const onCreateStreamView = useMemo(() => (options?: VideoStreamOptions) => {\n return onCreateRemoteStreamView?.(remoteParticipantId, options);\n }, [onCreateRemoteStreamView, remoteParticipantId]);\n const onDisposeStreamView = useMemo(() => () => {\n onDisposeRemoteStreamView?.(remoteParticipantId);\n }, [onDisposeRemoteStreamView, remoteParticipantId]);\n return useVideoStreamLifecycleMaintainer({\n ...props,\n onCreateStreamView,\n onDisposeStreamView\n });\n};"]}
1
+ {"version":3,"file":"useVideoStreamLifecycleMaintainer.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { useEffect, useMemo, useState } from 'react';\nimport { VideoStreamOptions, CreateVideoStreamViewResult, ViewScalingMode } from '../../types';\n\n/** @private */\nexport interface VideoStreamLifecycleMaintainerExtendableProps {\n isStreamAvailable?: boolean;\n renderElementExists?: boolean;\n isMirrored?: boolean;\n scalingMode?: ViewScalingMode;\n isScreenSharingOn?: boolean;\n}\n\ninterface VideoStreamLifecycleMaintainerProps extends VideoStreamLifecycleMaintainerExtendableProps {\n onCreateStreamView: (options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult> | undefined;\n onDisposeStreamView: () => void | undefined;\n}\n\n/**\n * Helper hook to maintain the video stream lifecycle. This calls onCreateStreamView and onDisposeStreamView\n * appropriately based on react lifecycle events and prop changes.\n *\n * @remarks\n *\n * Notes on handling changes to scaling mode:\n *\n * Ideally we have access to the original StreamRenderView and can call view.updateScalingMode() and do not need to recreate the stream view.\n * However, to support backwards compat we cannot guarantee this. If we don't have access to the original StreamRenderView we need to dispose\n * the old view and create a new one.\n *\n * Supporting both of these scenarios became too complex and fragile. When we introduce a breaking change this should be update to ensure that\n * onCreateStreamView _must_ return a view object with updateScalingMode and update logic in this hook to call view.updateScalingMode instead\n * of recreating the stream.\n *\n * @private\n */\nconst useVideoStreamLifecycleMaintainer = (\n props: VideoStreamLifecycleMaintainerProps\n): CreateVideoStreamViewResult | undefined => {\n const {\n isMirrored,\n isScreenSharingOn,\n isStreamAvailable,\n onCreateStreamView,\n onDisposeStreamView,\n renderElementExists,\n scalingMode\n } = props;\n\n const [videoStreamViewResult, setVideoStreamViewResult] = useState<CreateVideoStreamViewResult | undefined>();\n\n useEffect(() => {\n if (isStreamAvailable && !renderElementExists) {\n onCreateStreamView?.({ isMirrored, scalingMode })?.then((result) => {\n result && setVideoStreamViewResult(result);\n });\n }\n\n // Always clean up element to make tile up to date and be able to dispose correctly\n return () => {\n if (renderElementExists) {\n // TODO: Remove `if isScreenSharingOn` when we isolate dispose behavior for screen share\n if (!isScreenSharingOn) {\n onDisposeStreamView?.();\n }\n }\n };\n }, [\n isMirrored,\n isScreenSharingOn,\n isStreamAvailable,\n onCreateStreamView,\n onDisposeStreamView,\n renderElementExists,\n scalingMode\n ]);\n\n // The execution order for above useEffect is onCreateRemoteStreamView =>(async time gap) RenderElement generated => element disposed => onDisposeRemoteStreamView\n // Element disposed could happen during async time gap, which still cause leaks for unused renderElement.\n // Need to do an entire cleanup when remoteTile gets disposed and make sure element gets correctly disposed\n useEffect(() => {\n return () => {\n // TODO: Remove `if isScreenSharingOn` when we isolate dispose behavior for screen share\n if (!isScreenSharingOn) {\n onDisposeStreamView?.();\n }\n };\n }, [isScreenSharingOn, onDisposeStreamView]);\n\n return videoStreamViewResult;\n};\n\n/** @private */\nexport interface LocalVideoStreamLifecycleMaintainerProps extends VideoStreamLifecycleMaintainerExtendableProps {\n onCreateLocalStreamView?: (options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>;\n onDisposeLocalStreamView?: () => void;\n}\n\n/**\n * Extension of {@link useVideoStreamLifecycleMaintainer} specifically for local video streams\n *\n * @private\n */\nexport const useLocalVideoStreamLifecycleMaintainer = (\n props: LocalVideoStreamLifecycleMaintainerProps\n): CreateVideoStreamViewResult | undefined => {\n const { onCreateLocalStreamView, onDisposeLocalStreamView } = props;\n const onCreateStreamView = useMemo(\n () => (options?: VideoStreamOptions) => {\n return onCreateLocalStreamView?.(options);\n },\n [onCreateLocalStreamView]\n );\n const onDisposeStreamView = useMemo(\n () => () => {\n onDisposeLocalStreamView?.();\n },\n [onDisposeLocalStreamView]\n );\n return useVideoStreamLifecycleMaintainer({\n ...props,\n onCreateStreamView,\n onDisposeStreamView\n });\n};\n\n/** @private */\nexport interface RemoteVideoStreamLifecycleMaintainerProps extends VideoStreamLifecycleMaintainerExtendableProps {\n onCreateRemoteStreamView?: (\n userId: string,\n options?: VideoStreamOptions\n ) => Promise<void | CreateVideoStreamViewResult>;\n onDisposeRemoteStreamView?: (userId: string) => Promise<void>;\n remoteParticipantId: string;\n}\n\n/**\n * Extension of {@link useVideoStreamLifecycleMaintainer} specifically for remote video streams\n *\n * @private\n */\nexport const useRemoteVideoStreamLifecycleMaintainer = (\n props: RemoteVideoStreamLifecycleMaintainerProps\n): CreateVideoStreamViewResult | undefined => {\n const { remoteParticipantId, onCreateRemoteStreamView, onDisposeRemoteStreamView } = props;\n const onCreateStreamView = useMemo(\n () => (options?: VideoStreamOptions) => {\n return onCreateRemoteStreamView?.(remoteParticipantId, options);\n },\n [onCreateRemoteStreamView, remoteParticipantId]\n );\n const onDisposeStreamView = useMemo(\n () => () => {\n onDisposeRemoteStreamView?.(remoteParticipantId);\n },\n [onDisposeRemoteStreamView, remoteParticipantId]\n );\n\n return useVideoStreamLifecycleMaintainer({\n ...props,\n onCreateStreamView,\n onDisposeStreamView\n });\n};\n"]}
@@ -15,6 +15,7 @@ export const useVideoTileContextualMenuProps = (props) => {
15
15
  return (_a = props.remoteParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.scalingMode;
16
16
  return undefined;
17
17
  }, [
18
+ /* @conditional-compile-remove(pinned-participants) */
18
19
  (_a = props.remoteParticipant.videoStream) === null || _a === void 0 ? void 0 : _a.scalingMode
19
20
  ]);
20
21
  const contextualMenuProps = useMemo(() => {
@@ -32,12 +33,7 @@ export const useVideoTileContextualMenuProps = (props) => {
32
33
  text: strings.unpinParticipantForMe,
33
34
  iconProps: {
34
35
  iconName: 'UnpinParticipant',
35
- styles: {
36
- root: {
37
- lineHeight: '1rem',
38
- textAlign: 'center'
39
- }
40
- }
36
+ styles: { root: { lineHeight: '1rem', textAlign: 'center' } }
41
37
  },
42
38
  onClick: () => {
43
39
  onUnpinParticipant(remoteParticipant.userId);
@@ -59,12 +55,7 @@ export const useVideoTileContextualMenuProps = (props) => {
59
55
  text: disablePinMenuItem ? strings.pinParticipantForMeLimitReached : strings.pinParticipantForMe,
60
56
  iconProps: {
61
57
  iconName: 'PinParticipant',
62
- styles: {
63
- root: {
64
- lineHeight: '1rem',
65
- textAlign: 'center'
66
- }
67
- }
58
+ styles: { root: { lineHeight: '1rem', textAlign: 'center' } }
68
59
  },
69
60
  onClick: () => {
70
61
  onPinParticipant(remoteParticipant.userId);
@@ -83,12 +74,7 @@ export const useVideoTileContextualMenuProps = (props) => {
83
74
  text: strings.fitRemoteParticipantToFrame,
84
75
  iconProps: {
85
76
  iconName: 'VideoTileScaleFit',
86
- styles: {
87
- root: {
88
- lineHeight: '1rem',
89
- textAlign: 'center'
90
- }
91
- }
77
+ styles: { root: { lineHeight: '1rem', textAlign: 'center' } }
92
78
  },
93
79
  onClick: () => {
94
80
  onUpdateScalingMode === null || onUpdateScalingMode === void 0 ? void 0 : onUpdateScalingMode(remoteParticipant.userId, 'Fit');
@@ -105,12 +91,7 @@ export const useVideoTileContextualMenuProps = (props) => {
105
91
  text: strings.fillRemoteParticipantFrame,
106
92
  iconProps: {
107
93
  iconName: 'VideoTileScaleFill',
108
- styles: {
109
- root: {
110
- lineHeight: '1rem',
111
- textAlign: 'center'
112
- }
113
- }
94
+ styles: { root: { lineHeight: '1rem', textAlign: 'center' } }
114
95
  },
115
96
  onClick: () => {
116
97
  onUpdateScalingMode === null || onUpdateScalingMode === void 0 ? void 0 : onUpdateScalingMode(remoteParticipant.userId, 'Crop');
@@ -125,14 +106,20 @@ export const useVideoTileContextualMenuProps = (props) => {
125
106
  if (items.length === 0) {
126
107
  return undefined;
127
108
  }
128
- return {
129
- items,
130
- styles: {},
131
- calloutProps: {
132
- preventDismissOnEvent
133
- }
134
- };
135
- }, [scalingMode, strings, view, isPinned, onPinParticipant, onUnpinParticipant, onUpdateScalingMode, remoteParticipant.userId, remoteParticipant.displayName, disablePinMenuItem, toggleAnnouncerString]);
109
+ return { items, styles: {}, calloutProps: { preventDismissOnEvent } };
110
+ }, [
111
+ scalingMode,
112
+ strings,
113
+ view,
114
+ isPinned,
115
+ onPinParticipant,
116
+ onUnpinParticipant,
117
+ onUpdateScalingMode,
118
+ remoteParticipant.userId,
119
+ remoteParticipant.displayName,
120
+ disablePinMenuItem,
121
+ toggleAnnouncerString
122
+ ]);
136
123
  return contextualMenuProps;
137
124
  };
138
125
  //# sourceMappingURL=useVideoTileContextualMenuProps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useVideoTileContextualMenuProps.js","sourceRoot":"","sources":["../../../../../../preprocess-dist/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,aAAa,EAAE,sCAAgC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,sBAAsB,IAAI,qBAAqB,EAAE,sCAAgC;AAE1F;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,KAsB/C,EAAoC,EAAE;;IACrC,MAAM,EACJ,iBAAiB,EACjB,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACtB,GAAG,KAAK,CAAC;IACV,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;;QAC/B,sDAAsD;QACtD,OAAO,MAAA,KAAK,CAAC,iBAAiB,CAAC,WAAW,0CAAE,WAAW,CAAC;QACxD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE;QACH,MAAA,KAAK,CAAC,iBAAiB,CAAC,WAAW,0CAAE,WAAW;KAAC,CAAC,CAAC;IACnD,MAAM,mBAAmB,GAAqC,OAAO,CAAC,GAAG,EAAE;QACzE,MAAM,KAAK,GAA0B,EAAE,CAAC;QACxC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,IAAI,QAAQ,IAAI,kBAAkB,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,qBAAqB,CAAA,EAAE;gBACpE,IAAI,iBAAiB,GAAuB,SAAS,CAAC;gBACtD,IAAI,qBAAqB,IAAI,OAAO,CAAC,iCAAiC,IAAI,iBAAiB,CAAC,WAAW,EAAE;oBACvG,iBAAiB,GAAG,aAAa,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iCAAiC,EAAE;wBAC5E,eAAe,EAAE,iBAAiB,CAAC,WAAW;qBAC/C,CAAC,CAAC;iBACJ;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,EAAE,OAAO;oBACZ,IAAI,EAAE,OAAO,CAAC,qBAAqB;oBACnC,SAAS,EAAE;wBACT,QAAQ,EAAE,kBAAkB;wBAC5B,MAAM,EAAE;4BACN,IAAI,EAAE;gCACJ,UAAU,EAAE,MAAM;gCAClB,SAAS,EAAE,QAAQ;6BACpB;yBACF;qBACF;oBACD,OAAO,EAAE,GAAG,EAAE;wBACZ,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;wBAC7C,iBAAiB,KAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,iBAAiB,CAAC,CAAA,CAAC;oBAClE,CAAC;oBACD,YAAY,EAAE,qCAAqC;oBACnD,SAAS,EAAE,iBAAiB;iBAC7B,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,QAAQ,IAAI,gBAAgB,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAA,EAAE;gBACjE,IAAI,eAAe,GAAuB,SAAS,CAAC;gBACpD,IAAI,qBAAqB,IAAI,OAAO,CAAC,sCAAsC,IAAI,iBAAiB,CAAC,WAAW,EAAE;oBAC5G,eAAe,GAAG,aAAa,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sCAAsC,EAAE;wBAC/E,eAAe,EAAE,iBAAiB,CAAC,WAAW;qBAC/C,CAAC,CAAC;iBACJ;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB;oBAChG,SAAS,EAAE;wBACT,QAAQ,EAAE,gBAAgB;wBAC1B,MAAM,EAAE;4BACN,IAAI,EAAE;gCACJ,UAAU,EAAE,MAAM;gCAClB,SAAS,EAAE,QAAQ;6BACpB;yBACF;qBACF;oBACD,OAAO,EAAE,GAAG,EAAE;wBACZ,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;wBAC3C,eAAe,KAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,eAAe,CAAC,CAAA,CAAC;oBAC9D,CAAC;oBACD,YAAY,EAAE,mCAAmC;oBACjD,QAAQ,EAAE,kBAAkB;oBAC5B,SAAS,EAAE,eAAe;iBAC3B,CAAC,CAAC;aACJ;SACF;QACD,IAAI,WAAW,EAAE;YACf,IAAI,WAAW,KAAK,MAAM,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,2BAA2B,CAAA,EAAE;gBAClE,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,EAAE,6BAA6B;oBAClC,IAAI,EAAE,OAAO,CAAC,2BAA2B;oBACzC,SAAS,EAAE;wBACT,QAAQ,EAAE,mBAAmB;wBAC7B,MAAM,EAAE;4BACN,IAAI,EAAE;gCACJ,UAAU,EAAE,MAAM;gCAClB,SAAS,EAAE,QAAQ;6BACpB;yBACF;qBACF;oBACD,OAAO,EAAE,GAAG,EAAE;wBACZ,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBACvD,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC;oBACD,YAAY,EAAE,yBAAyB;oBACvC,SAAS,EAAE,OAAO,CAAC,2BAA2B;iBAC/C,CAAC,CAAC;aACJ;iBAAM,IAAI,WAAW,KAAK,KAAK,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,0BAA0B,CAAA,EAAE;gBACvE;oBACE,KAAK,CAAC,IAAI,CAAC;wBACT,GAAG,EAAE,4BAA4B;wBACjC,IAAI,EAAE,OAAO,CAAC,0BAA0B;wBACxC,SAAS,EAAE;4BACT,QAAQ,EAAE,oBAAoB;4BAC9B,MAAM,EAAE;gCACN,IAAI,EAAE;oCACJ,UAAU,EAAE,MAAM;oCAClB,SAAS,EAAE,QAAQ;iCACpB;6BACF;yBACF;wBACD,OAAO,EAAE,GAAG,EAAE;4BACZ,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;4BACxD,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;wBAClC,CAAC;wBACD,YAAY,EAAE,uBAAuB;wBACrC,SAAS,EAAE,OAAO,CAAC,0BAA0B;qBAC9C,CAAC,CAAC;iBACJ;aACF;SACF;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,OAAO;YACL,KAAK;YACL,MAAM,EAAE,EAAE;YACV,YAAY,EAAE;gBACZ,qBAAqB;aACtB;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,CAAC,WAAW,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC1M,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IContextualMenuItem, IContextualMenuProps } from '@fluentui/react';\nimport { _formatString } from '@internal/acs-ui-common';\nimport { useMemo } from 'react';\nimport { VideoGalleryRemoteParticipant, ViewScalingMode } from '../../types';\nimport { _preventDismissOnEvent as preventDismissOnEvent } from '@internal/acs-ui-common';\n\n/**\n * @private\n */\nexport const useVideoTileContextualMenuProps = (props: {\n remoteParticipant: VideoGalleryRemoteParticipant;\n strings?: {\n fitRemoteParticipantToFrame?: string;\n fillRemoteParticipantFrame?: string;\n pinParticipantForMe?: string;\n pinParticipantForMeLimitReached?: string;\n unpinParticipantForMe?: string;\n pinParticipantMenuItemAriaLabel?: string;\n unpinParticipantMenuItemAriaLabel?: string;\n pinnedParticipantAnnouncementAriaLabel?: string;\n unpinnedParticipantAnnouncementAriaLabel?: string;\n };\n view?: {\n updateScalingMode: (scalingMode: ViewScalingMode) => Promise<void>;\n };\n isPinned?: boolean;\n onPinParticipant?: (userId: string) => void;\n onUnpinParticipant?: (userId: string) => void;\n onUpdateScalingMode?: (userId: string, scalingMode: ViewScalingMode) => void;\n disablePinMenuItem?: boolean;\n toggleAnnouncerString?: (announcerString: string) => void;\n}): IContextualMenuProps | undefined => {\n const {\n remoteParticipant,\n view,\n strings,\n isPinned,\n onPinParticipant,\n onUnpinParticipant,\n onUpdateScalingMode,\n disablePinMenuItem,\n toggleAnnouncerString\n } = props;\n const scalingMode = useMemo(() => {\n /* @conditional-compile-remove(pinned-participants) */\n return props.remoteParticipant.videoStream?.scalingMode;\n return undefined;\n }, [/* @conditional-compile-remove(pinned-participants) */\n props.remoteParticipant.videoStream?.scalingMode]);\n const contextualMenuProps: IContextualMenuProps | undefined = useMemo(() => {\n const items: IContextualMenuItem[] = [];\n if (isPinned !== undefined) {\n if (isPinned && onUnpinParticipant && strings?.unpinParticipantForMe) {\n let unpinActionString: string | undefined = undefined;\n if (toggleAnnouncerString && strings.unpinParticipantMenuItemAriaLabel && remoteParticipant.displayName) {\n unpinActionString = _formatString(strings?.unpinParticipantMenuItemAriaLabel, {\n participantName: remoteParticipant.displayName\n });\n }\n items.push({\n key: 'unpin',\n text: strings.unpinParticipantForMe,\n iconProps: {\n iconName: 'UnpinParticipant',\n styles: {\n root: {\n lineHeight: '1rem',\n textAlign: 'center'\n }\n }\n },\n onClick: () => {\n onUnpinParticipant(remoteParticipant.userId);\n unpinActionString && toggleAnnouncerString?.(unpinActionString);\n },\n 'data-ui-id': 'video-tile-unpin-participant-button',\n ariaLabel: unpinActionString\n });\n }\n if (!isPinned && onPinParticipant && strings?.pinParticipantForMe) {\n let pinActionString: string | undefined = undefined;\n if (toggleAnnouncerString && strings.pinnedParticipantAnnouncementAriaLabel && remoteParticipant.displayName) {\n pinActionString = _formatString(strings?.pinnedParticipantAnnouncementAriaLabel, {\n participantName: remoteParticipant.displayName\n });\n }\n items.push({\n key: 'pin',\n text: disablePinMenuItem ? strings.pinParticipantForMeLimitReached : strings.pinParticipantForMe,\n iconProps: {\n iconName: 'PinParticipant',\n styles: {\n root: {\n lineHeight: '1rem',\n textAlign: 'center'\n }\n }\n },\n onClick: () => {\n onPinParticipant(remoteParticipant.userId);\n pinActionString && toggleAnnouncerString?.(pinActionString);\n },\n 'data-ui-id': 'video-tile-pin-participant-button',\n disabled: disablePinMenuItem,\n ariaLabel: pinActionString\n });\n }\n }\n if (scalingMode) {\n if (scalingMode === 'Crop' && strings?.fitRemoteParticipantToFrame) {\n items.push({\n key: 'fitRemoteParticipantToFrame',\n text: strings.fitRemoteParticipantToFrame,\n iconProps: {\n iconName: 'VideoTileScaleFit',\n styles: {\n root: {\n lineHeight: '1rem',\n textAlign: 'center'\n }\n }\n },\n onClick: () => {\n onUpdateScalingMode?.(remoteParticipant.userId, 'Fit');\n view?.updateScalingMode('Fit');\n },\n 'data-ui-id': 'video-tile-fit-to-frame',\n ariaLabel: strings.fitRemoteParticipantToFrame\n });\n } else if (scalingMode === 'Fit' && strings?.fillRemoteParticipantFrame) {\n {\n items.push({\n key: 'fillRemoteParticipantFrame',\n text: strings.fillRemoteParticipantFrame,\n iconProps: {\n iconName: 'VideoTileScaleFill',\n styles: {\n root: {\n lineHeight: '1rem',\n textAlign: 'center'\n }\n }\n },\n onClick: () => {\n onUpdateScalingMode?.(remoteParticipant.userId, 'Crop');\n view?.updateScalingMode('Crop');\n },\n 'data-ui-id': 'video-tile-fill-frame',\n ariaLabel: strings.fillRemoteParticipantFrame\n });\n }\n }\n }\n if (items.length === 0) {\n return undefined;\n }\n return {\n items,\n styles: {},\n calloutProps: {\n preventDismissOnEvent\n }\n };\n }, [scalingMode, strings, view, isPinned, onPinParticipant, onUnpinParticipant, onUpdateScalingMode, remoteParticipant.userId, remoteParticipant.displayName, disablePinMenuItem, toggleAnnouncerString]);\n return contextualMenuProps;\n};\"../../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"useVideoTileContextualMenuProps.js","sourceRoot":"","sources":["../../../../../../../react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,aAAa,EAAE,sCAAgC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,sBAAsB,IAAI,qBAAqB,EAAE,sCAAgC;AAE1F;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,KAoB/C,EAAoC,EAAE;;IACrC,MAAM,EACJ,iBAAiB,EACjB,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACtB,GAAG,KAAK,CAAC;IACV,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;;QAC/B,sDAAsD;QACtD,OAAO,MAAA,KAAK,CAAC,iBAAiB,CAAC,WAAW,0CAAE,WAAW,CAAC;QACxD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE;QACD,sDAAsD;QACtD,MAAA,KAAK,CAAC,iBAAiB,CAAC,WAAW,0CAAE,WAAW;KACjD,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAqC,OAAO,CAAC,GAAG,EAAE;QACzE,MAAM,KAAK,GAA0B,EAAE,CAAC;QAExC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,IAAI,QAAQ,IAAI,kBAAkB,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,qBAAqB,CAAA,EAAE;gBACpE,IAAI,iBAAiB,GAAuB,SAAS,CAAC;gBACtD,IAAI,qBAAqB,IAAI,OAAO,CAAC,iCAAiC,IAAI,iBAAiB,CAAC,WAAW,EAAE;oBACvG,iBAAiB,GAAG,aAAa,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iCAAiC,EAAE;wBAC5E,eAAe,EAAE,iBAAiB,CAAC,WAAW;qBAC/C,CAAC,CAAC;iBACJ;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,EAAE,OAAO;oBACZ,IAAI,EAAE,OAAO,CAAC,qBAAqB;oBACnC,SAAS,EAAE;wBACT,QAAQ,EAAE,kBAAkB;wBAC5B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;qBAC9D;oBACD,OAAO,EAAE,GAAG,EAAE;wBACZ,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;wBAC7C,iBAAiB,KAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,iBAAiB,CAAC,CAAA,CAAC;oBAClE,CAAC;oBACD,YAAY,EAAE,qCAAqC;oBACnD,SAAS,EAAE,iBAAiB;iBAC7B,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,QAAQ,IAAI,gBAAgB,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAA,EAAE;gBACjE,IAAI,eAAe,GAAuB,SAAS,CAAC;gBACpD,IAAI,qBAAqB,IAAI,OAAO,CAAC,sCAAsC,IAAI,iBAAiB,CAAC,WAAW,EAAE;oBAC5G,eAAe,GAAG,aAAa,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sCAAsC,EAAE;wBAC/E,eAAe,EAAE,iBAAiB,CAAC,WAAW;qBAC/C,CAAC,CAAC;iBACJ;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB;oBAChG,SAAS,EAAE;wBACT,QAAQ,EAAE,gBAAgB;wBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;qBAC9D;oBACD,OAAO,EAAE,GAAG,EAAE;wBACZ,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;wBAC3C,eAAe,KAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,eAAe,CAAC,CAAA,CAAC;oBAC9D,CAAC;oBACD,YAAY,EAAE,mCAAmC;oBACjD,QAAQ,EAAE,kBAAkB;oBAC5B,SAAS,EAAE,eAAe;iBAC3B,CAAC,CAAC;aACJ;SACF;QACD,IAAI,WAAW,EAAE;YACf,IAAI,WAAW,KAAK,MAAM,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,2BAA2B,CAAA,EAAE;gBAClE,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,EAAE,6BAA6B;oBAClC,IAAI,EAAE,OAAO,CAAC,2BAA2B;oBACzC,SAAS,EAAE;wBACT,QAAQ,EAAE,mBAAmB;wBAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;qBAC9D;oBACD,OAAO,EAAE,GAAG,EAAE;wBACZ,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBACvD,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC;oBACD,YAAY,EAAE,yBAAyB;oBACvC,SAAS,EAAE,OAAO,CAAC,2BAA2B;iBAC/C,CAAC,CAAC;aACJ;iBAAM,IAAI,WAAW,KAAK,KAAK,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,0BAA0B,CAAA,EAAE;gBACvE;oBACE,KAAK,CAAC,IAAI,CAAC;wBACT,GAAG,EAAE,4BAA4B;wBACjC,IAAI,EAAE,OAAO,CAAC,0BAA0B;wBACxC,SAAS,EAAE;4BACT,QAAQ,EAAE,oBAAoB;4BAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;yBAC9D;wBACD,OAAO,EAAE,GAAG,EAAE;4BACZ,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;4BACxD,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;wBAClC,CAAC;wBACD,YAAY,EAAE,uBAAuB;wBACrC,SAAS,EAAE,OAAO,CAAC,0BAA0B;qBAC9C,CAAC,CAAC;iBACJ;aACF;SACF;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,qBAAqB,EAAE,EAAE,CAAC;IACxE,CAAC,EAAE;QACD,WAAW;QACX,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB;QACnB,iBAAiB,CAAC,MAAM;QACxB,iBAAiB,CAAC,WAAW;QAC7B,kBAAkB;QAClB,qBAAqB;KACtB,CAAC,CAAC;IAEH,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IContextualMenuItem, IContextualMenuProps } from '@fluentui/react';\nimport { _formatString } from '@internal/acs-ui-common';\nimport { useMemo } from 'react';\nimport { VideoGalleryRemoteParticipant, ViewScalingMode } from '../../types';\nimport { _preventDismissOnEvent as preventDismissOnEvent } from '@internal/acs-ui-common';\n\n/**\n * @private\n */\nexport const useVideoTileContextualMenuProps = (props: {\n remoteParticipant: VideoGalleryRemoteParticipant;\n strings?: {\n fitRemoteParticipantToFrame?: string;\n fillRemoteParticipantFrame?: string;\n pinParticipantForMe?: string;\n pinParticipantForMeLimitReached?: string;\n unpinParticipantForMe?: string;\n pinParticipantMenuItemAriaLabel?: string;\n unpinParticipantMenuItemAriaLabel?: string;\n pinnedParticipantAnnouncementAriaLabel?: string;\n unpinnedParticipantAnnouncementAriaLabel?: string;\n };\n view?: { updateScalingMode: (scalingMode: ViewScalingMode) => Promise<void> };\n isPinned?: boolean;\n onPinParticipant?: (userId: string) => void;\n onUnpinParticipant?: (userId: string) => void;\n onUpdateScalingMode?: (userId: string, scalingMode: ViewScalingMode) => void;\n disablePinMenuItem?: boolean;\n toggleAnnouncerString?: (announcerString: string) => void;\n}): IContextualMenuProps | undefined => {\n const {\n remoteParticipant,\n view,\n strings,\n isPinned,\n onPinParticipant,\n onUnpinParticipant,\n onUpdateScalingMode,\n disablePinMenuItem,\n toggleAnnouncerString\n } = props;\n const scalingMode = useMemo(() => {\n /* @conditional-compile-remove(pinned-participants) */\n return props.remoteParticipant.videoStream?.scalingMode;\n return undefined;\n }, [\n /* @conditional-compile-remove(pinned-participants) */\n props.remoteParticipant.videoStream?.scalingMode\n ]);\n\n const contextualMenuProps: IContextualMenuProps | undefined = useMemo(() => {\n const items: IContextualMenuItem[] = [];\n\n if (isPinned !== undefined) {\n if (isPinned && onUnpinParticipant && strings?.unpinParticipantForMe) {\n let unpinActionString: string | undefined = undefined;\n if (toggleAnnouncerString && strings.unpinParticipantMenuItemAriaLabel && remoteParticipant.displayName) {\n unpinActionString = _formatString(strings?.unpinParticipantMenuItemAriaLabel, {\n participantName: remoteParticipant.displayName\n });\n }\n items.push({\n key: 'unpin',\n text: strings.unpinParticipantForMe,\n iconProps: {\n iconName: 'UnpinParticipant',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onUnpinParticipant(remoteParticipant.userId);\n unpinActionString && toggleAnnouncerString?.(unpinActionString);\n },\n 'data-ui-id': 'video-tile-unpin-participant-button',\n ariaLabel: unpinActionString\n });\n }\n if (!isPinned && onPinParticipant && strings?.pinParticipantForMe) {\n let pinActionString: string | undefined = undefined;\n if (toggleAnnouncerString && strings.pinnedParticipantAnnouncementAriaLabel && remoteParticipant.displayName) {\n pinActionString = _formatString(strings?.pinnedParticipantAnnouncementAriaLabel, {\n participantName: remoteParticipant.displayName\n });\n }\n items.push({\n key: 'pin',\n text: disablePinMenuItem ? strings.pinParticipantForMeLimitReached : strings.pinParticipantForMe,\n iconProps: {\n iconName: 'PinParticipant',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onPinParticipant(remoteParticipant.userId);\n pinActionString && toggleAnnouncerString?.(pinActionString);\n },\n 'data-ui-id': 'video-tile-pin-participant-button',\n disabled: disablePinMenuItem,\n ariaLabel: pinActionString\n });\n }\n }\n if (scalingMode) {\n if (scalingMode === 'Crop' && strings?.fitRemoteParticipantToFrame) {\n items.push({\n key: 'fitRemoteParticipantToFrame',\n text: strings.fitRemoteParticipantToFrame,\n iconProps: {\n iconName: 'VideoTileScaleFit',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onUpdateScalingMode?.(remoteParticipant.userId, 'Fit');\n view?.updateScalingMode('Fit');\n },\n 'data-ui-id': 'video-tile-fit-to-frame',\n ariaLabel: strings.fitRemoteParticipantToFrame\n });\n } else if (scalingMode === 'Fit' && strings?.fillRemoteParticipantFrame) {\n {\n items.push({\n key: 'fillRemoteParticipantFrame',\n text: strings.fillRemoteParticipantFrame,\n iconProps: {\n iconName: 'VideoTileScaleFill',\n styles: { root: { lineHeight: '1rem', textAlign: 'center' } }\n },\n onClick: () => {\n onUpdateScalingMode?.(remoteParticipant.userId, 'Crop');\n view?.updateScalingMode('Crop');\n },\n 'data-ui-id': 'video-tile-fill-frame',\n ariaLabel: strings.fillRemoteParticipantFrame\n });\n }\n }\n }\n if (items.length === 0) {\n return undefined;\n }\n\n return { items, styles: {}, calloutProps: { preventDismissOnEvent } };\n }, [\n scalingMode,\n strings,\n view,\n isPinned,\n onPinParticipant,\n onUnpinParticipant,\n onUpdateScalingMode,\n remoteParticipant.userId,\n remoteParticipant.displayName,\n disablePinMenuItem,\n toggleAnnouncerString\n ]);\n\n return contextualMenuProps;\n};\n\"../../../../acs-ui-common/src\""]}
@@ -1 +1 @@
1
- {"version":3,"file":"OverflowGalleryUtils.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,eAAe,IAAI,cAAc,EAAE,yCAAgC;AAC5E,OAAO,EAAE,sCAAsC,EAAE,MAAM,0DAA0D,CAAC;AAClH,OAAO,EAAE,oCAAoC,EAAE,8BAA8B,EAAE,MAAM,wDAAwD,CAAC;AAE9I;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,IAKlD,EAAU,EAAE;IACX,MAAM,EACJ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,WAAW,EACZ,GAAG,IAAI,CAAC;IACT,MAAM,aAAa,GAAG,cAAc,CAAC,sCAAsC,CAAC,QAAQ,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAE7C;;;;;;;OAOG;IACH,MAAM,2BAA2B,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC;IACzG,8DAA8D;IAC9D,IAAI,gBAAgB,IAAI,2BAA2B,EAAE;QACnD,OAAO,2BAA2B,CAAC;KACpC;IACD,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAEnD;;;;;;;;OAQG;IACH,MAAM,aAAa,GAAG,cAAc,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC;IACtE,qGAAqG;IACrG,qFAAqF;IACrF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,IAMhD,EAAU,EAAE;IACX,MAAM,EACJ,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,OAAO,EACR,GAAG,IAAI,CAAC;IACT,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,oCAAoC,CAAC,SAAS,CAAC,CAAC,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAC7I,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,kBAAkB,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAE5D;;;;;;;;;;;;;;;;;;;OAmBG;IAEH,MAAM,8BAA8B,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC;IACtH,iFAAiF;IACjF,IAAI,gBAAgB,IAAI,8BAA8B,EAAE;QACtD,OAAO,8BAA8B,CAAC;KACvC;IAED;;;;;OAKG;IACH,MAAM,UAAU,GAAG,eAAe,GAAG,kBAAkB,GAAG,CAAC,GAAG,WAAW,CAAC;IAE1E;;;;;OAKG;IACH,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,gBAAgB,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChG,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { _convertRemToPx as convertRemToPx } from '@internal/acs-ui-common';\nimport { LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM } from '../styles/VideoGalleryResponsiveHorizontalGallery.styles';\nimport { SHORT_VERTICAL_GALLERY_TILE_SIZE_REM, VERTICAL_GALLERY_TILE_SIZE_REM } from '../styles/VideoGalleryResponsiveVerticalGallery.styles';\n\n/**\n * Helper function to calculate children per page for HorizontalGallery based on width of container, child, buttons, and\n * gaps in between\n *\n * @private\n */\nexport const calculateHorizontalChildrenPerPage = (args: {\n numberOfChildren: number;\n containerWidth: number;\n gapWidthRem: number;\n buttonWidthRem: number;\n}): number => {\n const {\n numberOfChildren,\n containerWidth,\n buttonWidthRem,\n gapWidthRem\n } = args;\n const childMinWidth = convertRemToPx(LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.minWidth);\n const gapWidth = convertRemToPx(gapWidthRem);\n\n /** First check how many children can fit in containerWidth.\n * __________________________________\n * | || |\n * | || |\n * |________________||________________|\n * <-----------containerWidth--------->\n * containerWidth = n * childWidth + (n - 1) * gapWidth. Isolate n and take the floor.\n */\n const numberOfChildrenInContainer = Math.floor((containerWidth + gapWidth) / (childMinWidth + gapWidth));\n // If all children fit then return numberOfChildrenInContainer\n if (numberOfChildren <= numberOfChildrenInContainer) {\n return numberOfChildrenInContainer;\n }\n const buttonWidth = convertRemToPx(buttonWidthRem);\n\n /** We know we need to paginate. So we need to subtract the buttonWidth twice and gapWidth twice from\n * containerWidth to compute childrenSpace\n * <-----------containerWidth--------->\n * __________________________________\n * | || || || |\n * |<|| || ||>|\n * |_||_____________||_____________||_|\n * <-------childrenSpace------>\n */\n const childrenSpace = containerWidth - 2 * buttonWidth - 2 * gapWidth;\n // Now that we have childrenSpace width we can figure out how many children can fit in childrenSpace.\n // childrenSpace = n * childWidth + (n - 1) * gapWidth. Isolate n and take the floor.\n return Math.max(Math.floor((childrenSpace + gapWidth) / (childMinWidth + gapWidth)), 1);\n};\n\n/**\n * Helper function to find the number of children for the VerticalGallery on each page.\n *\n * @private\n */\nexport const calculateVerticalChildrenPerPage = (args: {\n numberOfChildren: number;\n containerHeight: number;\n gapHeightRem: number;\n controlBarHeight: number;\n isShort: boolean;\n}): number => {\n const {\n numberOfChildren,\n containerHeight,\n gapHeightRem,\n controlBarHeight,\n isShort\n } = args;\n const childMinHeightPx = convertRemToPx(isShort ? SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.minHeight : VERTICAL_GALLERY_TILE_SIZE_REM.minHeight);\n const gapHeightPx = convertRemToPx(gapHeightRem);\n const controlBarHeightPx = convertRemToPx(controlBarHeight);\n\n /** First check how many children can fit in containerHeight.\n *\n * _________________\n * | |\n * | |\n * |________________|\n * _________________\n * | |\n * | |\n * |________________|\n *\n * < n/m >\n *\n * number of children = container height - (2* gap height + button height) / childMinHeight\n *\n * we want to find the maximum number of children at the smallest size we can fit in the gallery and then resize them\n * to fill in the space as much as possible\n *\n * First we will find the max number of children without any controls we can fit.\n */\n\n const maxNumberOfChildrenInContainer = Math.floor((containerHeight + gapHeightPx) / (childMinHeightPx + gapHeightPx));\n // if all of the children fit in the container just return the number of children\n if (numberOfChildren <= maxNumberOfChildrenInContainer) {\n return maxNumberOfChildrenInContainer;\n }\n\n /**\n * For the pagination we know the container height, the height of the button bar and the 2 times the gap\n * height, top tile and bottom tile above control bar. So the child space is calculated as:\n *\n * space = height - controlbar - (2 * gap)\n */\n const childSpace = containerHeight - controlBarHeightPx - 2 * gapHeightPx;\n\n /**\n * Now that we have the childrenSpace height we can figure out how many Children can fir in the childrenSpace.\n * childrenSpace = n * childHeightMin + (n - 1) * gapHeight. isolate n and take the floor.\n *\n * We want to always return at least one video tile if there are children present.So we take the max.\n */\n return Math.max(Math.floor((childSpace + gapHeightPx) / (childMinHeightPx + gapHeightPx)), 1);\n};\"../../../../../acs-ui-common/src\""]}
1
+ {"version":3,"file":"OverflowGalleryUtils.js","sourceRoot":"","sources":["../../../../../../../../react-components/src/components/VideoGallery/utils/OverflowGalleryUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,eAAe,IAAI,cAAc,EAAE,yCAAgC;AAC5E,OAAO,EAAE,sCAAsC,EAAE,MAAM,0DAA0D,CAAC;AAClH,OAAO,EACL,oCAAoC,EACpC,8BAA8B,EAC/B,MAAM,wDAAwD,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,IAKlD,EAAU,EAAE;IACX,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAE/E,MAAM,aAAa,GAAG,cAAc,CAAC,sCAAsC,CAAC,QAAQ,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAE7C;;;;;;;OAOG;IACH,MAAM,2BAA2B,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC;IACzG,8DAA8D;IAC9D,IAAI,gBAAgB,IAAI,2BAA2B,EAAE;QACnD,OAAO,2BAA2B,CAAC;KACpC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAEnD;;;;;;;;OAQG;IACH,MAAM,aAAa,GAAG,cAAc,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC;IACtE,qGAAqG;IACrG,qFAAqF;IACrF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,IAMhD,EAAU,EAAE;IACX,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAE5F,MAAM,gBAAgB,GAAG,cAAc,CACrC,OAAO,CAAC,CAAC,CAAC,oCAAoC,CAAC,SAAS,CAAC,CAAC,CAAC,8BAA8B,CAAC,SAAS,CACpG,CAAC;IACF,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,kBAAkB,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAE5D;;;;;;;;;;;;;;;;;;;OAmBG;IAEH,MAAM,8BAA8B,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC;IACtH,iFAAiF;IACjF,IAAI,gBAAgB,IAAI,8BAA8B,EAAE;QACtD,OAAO,8BAA8B,CAAC;KACvC;IAED;;;;;OAKG;IACH,MAAM,UAAU,GAAG,eAAe,GAAG,kBAAkB,GAAG,CAAC,GAAG,WAAW,CAAC;IAE1E;;;;;OAKG;IACH,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,gBAAgB,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChG,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { _convertRemToPx as convertRemToPx } from '@internal/acs-ui-common';\nimport { LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM } from '../styles/VideoGalleryResponsiveHorizontalGallery.styles';\nimport {\n SHORT_VERTICAL_GALLERY_TILE_SIZE_REM,\n VERTICAL_GALLERY_TILE_SIZE_REM\n} from '../styles/VideoGalleryResponsiveVerticalGallery.styles';\n\n/**\n * Helper function to calculate children per page for HorizontalGallery based on width of container, child, buttons, and\n * gaps in between\n *\n * @private\n */\nexport const calculateHorizontalChildrenPerPage = (args: {\n numberOfChildren: number;\n containerWidth: number;\n gapWidthRem: number;\n buttonWidthRem: number;\n}): number => {\n const { numberOfChildren, containerWidth, buttonWidthRem, gapWidthRem } = args;\n\n const childMinWidth = convertRemToPx(LARGE_HORIZONTAL_GALLERY_TILE_SIZE_REM.minWidth);\n const gapWidth = convertRemToPx(gapWidthRem);\n\n /** First check how many children can fit in containerWidth.\n * __________________________________\n * | || |\n * | || |\n * |________________||________________|\n * <-----------containerWidth--------->\n * containerWidth = n * childWidth + (n - 1) * gapWidth. Isolate n and take the floor.\n */\n const numberOfChildrenInContainer = Math.floor((containerWidth + gapWidth) / (childMinWidth + gapWidth));\n // If all children fit then return numberOfChildrenInContainer\n if (numberOfChildren <= numberOfChildrenInContainer) {\n return numberOfChildrenInContainer;\n }\n\n const buttonWidth = convertRemToPx(buttonWidthRem);\n\n /** We know we need to paginate. So we need to subtract the buttonWidth twice and gapWidth twice from\n * containerWidth to compute childrenSpace\n * <-----------containerWidth--------->\n * __________________________________\n * | || || || |\n * |<|| || ||>|\n * |_||_____________||_____________||_|\n * <-------childrenSpace------>\n */\n const childrenSpace = containerWidth - 2 * buttonWidth - 2 * gapWidth;\n // Now that we have childrenSpace width we can figure out how many children can fit in childrenSpace.\n // childrenSpace = n * childWidth + (n - 1) * gapWidth. Isolate n and take the floor.\n return Math.max(Math.floor((childrenSpace + gapWidth) / (childMinWidth + gapWidth)), 1);\n};\n\n/**\n * Helper function to find the number of children for the VerticalGallery on each page.\n *\n * @private\n */\nexport const calculateVerticalChildrenPerPage = (args: {\n numberOfChildren: number;\n containerHeight: number;\n gapHeightRem: number;\n controlBarHeight: number;\n isShort: boolean;\n}): number => {\n const { numberOfChildren, containerHeight, gapHeightRem, controlBarHeight, isShort } = args;\n\n const childMinHeightPx = convertRemToPx(\n isShort ? SHORT_VERTICAL_GALLERY_TILE_SIZE_REM.minHeight : VERTICAL_GALLERY_TILE_SIZE_REM.minHeight\n );\n const gapHeightPx = convertRemToPx(gapHeightRem);\n const controlBarHeightPx = convertRemToPx(controlBarHeight);\n\n /** First check how many children can fit in containerHeight.\n *\n * _________________\n * | |\n * | |\n * |________________|\n * _________________\n * | |\n * | |\n * |________________|\n *\n * < n/m >\n *\n * number of children = container height - (2* gap height + button height) / childMinHeight\n *\n * we want to find the maximum number of children at the smallest size we can fit in the gallery and then resize them\n * to fill in the space as much as possible\n *\n * First we will find the max number of children without any controls we can fit.\n */\n\n const maxNumberOfChildrenInContainer = Math.floor((containerHeight + gapHeightPx) / (childMinHeightPx + gapHeightPx));\n // if all of the children fit in the container just return the number of children\n if (numberOfChildren <= maxNumberOfChildrenInContainer) {\n return maxNumberOfChildrenInContainer;\n }\n\n /**\n * For the pagination we know the container height, the height of the button bar and the 2 times the gap\n * height, top tile and bottom tile above control bar. So the child space is calculated as:\n *\n * space = height - controlbar - (2 * gap)\n */\n const childSpace = containerHeight - controlBarHeightPx - 2 * gapHeightPx;\n\n /**\n * Now that we have the childrenSpace height we can figure out how many Children can fir in the childrenSpace.\n * childrenSpace = n * childHeightMin + (n - 1) * gapHeight. isolate n and take the floor.\n *\n * We want to always return at least one video tile if there are children present.So we take the max.\n */\n return Math.max(Math.floor((childSpace + gapHeightPx) / (childMinHeightPx + gapHeightPx)), 1);\n};\n\"../../../../../acs-ui-common/src\""]}
@@ -23,32 +23,40 @@ const _useOrganizedParticipants = (props) => {
23
23
  return maxRemoteVideoStreams;
24
24
  };
25
25
  const maxRemoteVideoStreamsToUse = calculateMaxRemoteVideoStreams();
26
- const videoParticipants = remoteParticipants.filter(p => { var _a; return (_a = p.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
26
+ const videoParticipants = remoteParticipants.filter((p) => { var _a; return (_a = p.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable; });
27
27
  const participantsToSortTrampoline = () => {
28
28
  /* @conditional-compile-remove(gallery-layouts) */
29
29
  return layout !== 'floatingLocalVideo' ? putVideoParticipantsFirst(remoteParticipants) : videoParticipants;
30
30
  return videoParticipants;
31
31
  };
32
- visibleGridParticipants.current = pinnedParticipantUserIds.length > 0 || isScreenShareActive ? [] : smartDominantSpeakerParticipants({
33
- participants: participantsToSortTrampoline(),
34
- dominantSpeakers,
35
- lastVisibleParticipants: visibleGridParticipants.current,
36
- maxDominantSpeakers: maxRemoteVideoStreamsToUse
37
- }).slice(0, maxRemoteVideoStreamsToUse);
32
+ visibleGridParticipants.current =
33
+ pinnedParticipantUserIds.length > 0 || isScreenShareActive
34
+ ? []
35
+ : smartDominantSpeakerParticipants({
36
+ participants: participantsToSortTrampoline(),
37
+ dominantSpeakers,
38
+ lastVisibleParticipants: visibleGridParticipants.current,
39
+ maxDominantSpeakers: maxRemoteVideoStreamsToUse
40
+ }).slice(0, maxRemoteVideoStreamsToUse);
38
41
  /* @conditional-compile-remove(gallery-layouts) */
39
- const dominantSpeakerToGrid = layout === 'speaker' ? dominantSpeakers && dominantSpeakers[0] ? visibleGridParticipants.current.filter(p => p.userId === dominantSpeakers[0]) : [visibleGridParticipants.current[0]] : [];
42
+ const dominantSpeakerToGrid = layout === 'speaker'
43
+ ? dominantSpeakers && dominantSpeakers[0]
44
+ ? visibleGridParticipants.current.filter((p) => p.userId === dominantSpeakers[0])
45
+ : [visibleGridParticipants.current[0]]
46
+ : [];
40
47
  /* @conditional-compile-remove(gallery-layouts) */
41
48
  if (dominantSpeakerToGrid[0]) {
42
49
  visibleGridParticipants.current = dominantSpeakerToGrid;
43
50
  }
44
- const visibleGridParticipantsSet = new Set(visibleGridParticipants.current.map(p => p.userId));
51
+ const visibleGridParticipantsSet = new Set(visibleGridParticipants.current.map((p) => p.userId));
45
52
  const remoteParticipantsOrdered = putVideoParticipantsFirst(remoteParticipants);
46
53
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
47
- const callingParticipants = remoteParticipantsOrdered.filter(p => p.state === ('Connecting' || 'Ringing'));
54
+ const callingParticipants = remoteParticipantsOrdered.filter((p) => p.state === ('Connecting' || 'Ringing'));
48
55
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
49
- const callingParticipantsSet = new Set(callingParticipants.map(p => p.userId));
56
+ const callingParticipantsSet = new Set(callingParticipants.map((p) => p.userId));
50
57
  visibleOverflowGalleryParticipants.current = smartDominantSpeakerParticipants({
51
- participants: remoteParticipantsOrdered.filter(p => !visibleGridParticipantsSet.has(p.userId) && /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !callingParticipantsSet.has(p.userId)),
58
+ participants: remoteParticipantsOrdered.filter((p) => !visibleGridParticipantsSet.has(p.userId) &&
59
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !callingParticipantsSet.has(p.userId)),
52
60
  dominantSpeakers: dominantSpeakers,
53
61
  lastVisibleParticipants: visibleOverflowGalleryParticipants.current,
54
62
  maxDominantSpeakers: maxOverflowGalleryDominantSpeakers
@@ -61,9 +69,19 @@ const _useOrganizedParticipants = (props) => {
61
69
  // we will use the max streams provided to the function to find the max participants that can go in the grid
62
70
  // if there are less participants than max streams then we will use all participants including joining in the grid
63
71
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
64
- return visibleGridParticipants.current.length > 0 ? visibleGridParticipants.current : visibleOverflowGalleryParticipants.current.length > maxRemoteVideoStreamsToUse ? visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse) : visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse).concat(callingParticipants);
65
- return visibleGridParticipants.current.length > 0 ? visibleGridParticipants.current : visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse);
66
- }, [/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ callingParticipants, isScreenShareActive, maxRemoteVideoStreamsToUse]);
72
+ return visibleGridParticipants.current.length > 0
73
+ ? visibleGridParticipants.current
74
+ : visibleOverflowGalleryParticipants.current.length > maxRemoteVideoStreamsToUse
75
+ ? visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse)
76
+ : visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse).concat(callingParticipants);
77
+ return visibleGridParticipants.current.length > 0
78
+ ? visibleGridParticipants.current
79
+ : visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse);
80
+ }, [
81
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ callingParticipants,
82
+ isScreenShareActive,
83
+ maxRemoteVideoStreamsToUse
84
+ ]);
67
85
  const gridParticipants = getGridParticipants();
68
86
  const getOverflowGalleryRemoteParticipants = useCallback(() => {
69
87
  if (isScreenShareActive && localParticipant) {
@@ -85,15 +103,23 @@ const _useOrganizedParticipants = (props) => {
85
103
  // if there are more overflow tiles than max streams then find the tiles that don't fit in the grid and put them in overflow
86
104
  // overflow should be empty if total participants including calling participants is less than max streams
87
105
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
88
- return visibleGridParticipants.current.length > 0 ? visibleOverflowGalleryParticipants.current.concat(callingParticipants) : visibleOverflowGalleryParticipants.current.length > maxRemoteVideoStreamsToUse ? visibleOverflowGalleryParticipants.current.slice(maxRemoteVideoStreamsToUse).concat(callingParticipants) : [];
89
- return visibleGridParticipants.current.length > 0 ? visibleOverflowGalleryParticipants.current : visibleOverflowGalleryParticipants.current.slice(maxRemoteVideoStreamsToUse);
106
+ return visibleGridParticipants.current.length > 0
107
+ ? visibleOverflowGalleryParticipants.current.concat(callingParticipants)
108
+ : visibleOverflowGalleryParticipants.current.length > maxRemoteVideoStreamsToUse
109
+ ? visibleOverflowGalleryParticipants.current.slice(maxRemoteVideoStreamsToUse).concat(callingParticipants)
110
+ : [];
111
+ return visibleGridParticipants.current.length > 0
112
+ ? visibleOverflowGalleryParticipants.current
113
+ : visibleOverflowGalleryParticipants.current.slice(maxRemoteVideoStreamsToUse);
90
114
  }
91
- }, [/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ callingParticipants, isScreenShareActive, localParticipant, maxRemoteVideoStreamsToUse]);
115
+ }, [
116
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ callingParticipants,
117
+ isScreenShareActive,
118
+ localParticipant,
119
+ maxRemoteVideoStreamsToUse
120
+ ]);
92
121
  const overflowGalleryParticipants = getOverflowGalleryRemoteParticipants();
93
- return {
94
- gridParticipants,
95
- overflowGalleryParticipants: overflowGalleryParticipants
96
- };
122
+ return { gridParticipants, overflowGalleryParticipants: overflowGalleryParticipants };
97
123
  };
98
124
  /* @conditional-compile-remove(pinned-participants) */
99
125
  const _useOrganizedParticipantsWithPinnedParticipants = (props) => {
@@ -105,7 +131,7 @@ const _useOrganizedParticipantsWithPinnedParticipants = (props) => {
105
131
  }, {});
106
132
  // get pinned participants in the same order of pinned participant user ids using remoteParticipantMap
107
133
  const pinnedParticipants = [];
108
- (_a = props.pinnedParticipantUserIds) === null || _a === void 0 ? void 0 : _a.forEach(id => {
134
+ (_a = props.pinnedParticipantUserIds) === null || _a === void 0 ? void 0 : _a.forEach((id) => {
109
135
  const pinnedParticipant = remoteParticipantMap[id];
110
136
  if (pinnedParticipant) {
111
137
  pinnedParticipants.push(pinnedParticipant);
@@ -113,7 +139,7 @@ const _useOrganizedParticipantsWithPinnedParticipants = (props) => {
113
139
  });
114
140
  // get unpinned participants by filtering all remote participants using a set of pinned participant user ids
115
141
  const pinnedParticipantUserIdSet = new Set(props.pinnedParticipantUserIds);
116
- const unpinnedParticipants = props.remoteParticipants.filter(p => !pinnedParticipantUserIdSet.has(p.userId));
142
+ const unpinnedParticipants = props.remoteParticipants.filter((p) => !pinnedParticipantUserIdSet.has(p.userId));
117
143
  const useOrganizedParticipantsProps = Object.assign(Object.assign({}, props), {
118
144
  // if there are pinned participants then we should only consider unpinned participants
119
145
  remoteParticipants: unpinnedParticipants });
@@ -123,13 +149,15 @@ const _useOrganizedParticipantsWithPinnedParticipants = (props) => {
123
149
  }
124
150
  return {
125
151
  gridParticipants: props.isScreenShareActive ? [] : pinnedParticipants,
126
- overflowGalleryParticipants: props.isScreenShareActive ? pinnedParticipants.concat(useOrganizedParticipantsResult.overflowGalleryParticipants) : useOrganizedParticipantsResult.gridParticipants.concat(useOrganizedParticipantsResult.overflowGalleryParticipants)
152
+ overflowGalleryParticipants: props.isScreenShareActive
153
+ ? pinnedParticipants.concat(useOrganizedParticipantsResult.overflowGalleryParticipants)
154
+ : useOrganizedParticipantsResult.gridParticipants.concat(useOrganizedParticipantsResult.overflowGalleryParticipants)
127
155
  };
128
156
  };
129
157
  const putVideoParticipantsFirst = (remoteParticipants) => {
130
158
  const videoParticipants = [];
131
159
  const audioParticipants = [];
132
- remoteParticipants.forEach(p => {
160
+ remoteParticipants.forEach((p) => {
133
161
  var _a;
134
162
  if ((_a = p.videoStream) === null || _a === void 0 ? void 0 : _a.isAvailable) {
135
163
  videoParticipants.push(p);
@@ -1 +1 @@
1
- {"version":3,"file":"videoGalleryLayoutUtils.js","sourceRoot":"","sources":["../../../../../../../preprocess-dist/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { useCallback, useRef } from 'react';\nimport { smartDominantSpeakerParticipants } from '../../../gallery';\nimport { VideoGalleryParticipant, VideoGalleryRemoteParticipant } from '../../../types';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { VideoGalleryLayout } from '../../VideoGallery';\n\n/**\n * Arguments used to determine a {@link OrganizedParticipantsResult}\n * @private\n */\nexport interface OrganizedParticipantsArgs {\n remoteParticipants: VideoGalleryRemoteParticipant[];\n localParticipant?: VideoGalleryParticipant;\n dominantSpeakers?: string[];\n maxRemoteVideoStreams?: number;\n maxOverflowGalleryDominantSpeakers?: number;\n isScreenShareActive?: boolean;\n pinnedParticipantUserIds?: string[];\n /* @conditional-compile-remove(gallery-layouts) */\n layout?: VideoGalleryLayout;\n}\n\n/**\n * A result that defines grid participants and overflow gallery participants in the VideoGallery\n * @private\n */\nexport interface OrganizedParticipantsResult {\n gridParticipants: VideoGalleryParticipant[];\n overflowGalleryParticipants: VideoGalleryParticipant[];\n}\nconst DEFAULT_MAX_OVERFLOW_GALLERY_DOMINANT_SPEAKERS = 6;\nconst DEFAULT_MAX_VIDEO_SREAMS = 4;\n/* @conditional-compile-remove(gallery-layouts) */\nconst MAX_GRID_PARTICIPANTS_NOT_LARGE_GALLERY = 9;\nconst _useOrganizedParticipants = (props: OrganizedParticipantsArgs): OrganizedParticipantsResult => {\n const visibleGridParticipants = useRef<VideoGalleryRemoteParticipant[]>([]);\n const visibleOverflowGalleryParticipants = useRef<VideoGalleryRemoteParticipant[]>([]);\n const {\n remoteParticipants = [],\n localParticipant,\n dominantSpeakers = [],\n maxRemoteVideoStreams = DEFAULT_MAX_VIDEO_SREAMS,\n maxOverflowGalleryDominantSpeakers = DEFAULT_MAX_OVERFLOW_GALLERY_DOMINANT_SPEAKERS,\n isScreenShareActive = false,\n pinnedParticipantUserIds = [],\n /* @conditional-compile-remove(gallery-layouts) */\n layout\n } = props;\n const calculateMaxRemoteVideoStreams = (): number => {\n /* @conditional-compile-remove(gallery-layouts) */\n if (maxRemoteVideoStreams > MAX_GRID_PARTICIPANTS_NOT_LARGE_GALLERY) {\n return MAX_GRID_PARTICIPANTS_NOT_LARGE_GALLERY;\n } else {\n return maxRemoteVideoStreams;\n }\n return maxRemoteVideoStreams;\n };\n const maxRemoteVideoStreamsToUse = calculateMaxRemoteVideoStreams();\n const videoParticipants = remoteParticipants.filter(p => p.videoStream?.isAvailable);\n const participantsToSortTrampoline = (): VideoGalleryRemoteParticipant[] => {\n /* @conditional-compile-remove(gallery-layouts) */\n return layout !== 'floatingLocalVideo' ? putVideoParticipantsFirst(remoteParticipants) : videoParticipants;\n return videoParticipants;\n };\n visibleGridParticipants.current = pinnedParticipantUserIds.length > 0 || isScreenShareActive ? [] : smartDominantSpeakerParticipants({\n participants: participantsToSortTrampoline(),\n dominantSpeakers,\n lastVisibleParticipants: visibleGridParticipants.current,\n maxDominantSpeakers: maxRemoteVideoStreamsToUse\n }).slice(0, maxRemoteVideoStreamsToUse);\n\n /* @conditional-compile-remove(gallery-layouts) */\n const dominantSpeakerToGrid = layout === 'speaker' ? dominantSpeakers && dominantSpeakers[0] ? visibleGridParticipants.current.filter(p => p.userId === dominantSpeakers[0]) : [visibleGridParticipants.current[0]] : [];\n /* @conditional-compile-remove(gallery-layouts) */\n if (dominantSpeakerToGrid[0]) {\n visibleGridParticipants.current = dominantSpeakerToGrid;\n }\n const visibleGridParticipantsSet = new Set(visibleGridParticipants.current.map(p => p.userId));\n const remoteParticipantsOrdered = putVideoParticipantsFirst(remoteParticipants);\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const callingParticipants = remoteParticipantsOrdered.filter(p => p.state === ('Connecting' || 'Ringing'));\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const callingParticipantsSet = new Set(callingParticipants.map(p => p.userId));\n visibleOverflowGalleryParticipants.current = smartDominantSpeakerParticipants({\n participants: remoteParticipantsOrdered.filter(p => !visibleGridParticipantsSet.has(p.userId) && /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */!callingParticipantsSet.has(p.userId)),\n dominantSpeakers: dominantSpeakers,\n lastVisibleParticipants: visibleOverflowGalleryParticipants.current,\n maxDominantSpeakers: maxOverflowGalleryDominantSpeakers\n });\n const getGridParticipants = useCallback((): VideoGalleryRemoteParticipant[] => {\n if (isScreenShareActive) {\n return [];\n }\n // if we have no grid participants we need to cap the max number of overflowGallery participants in the grid\n // we will use the max streams provided to the function to find the max participants that can go in the grid\n // if there are less participants than max streams then we will use all participants including joining in the grid\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return visibleGridParticipants.current.length > 0 ? visibleGridParticipants.current : visibleOverflowGalleryParticipants.current.length > maxRemoteVideoStreamsToUse ? visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse) : visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse).concat(callingParticipants);\n return visibleGridParticipants.current.length > 0 ? visibleGridParticipants.current : visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse);\n }, [/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */callingParticipants, isScreenShareActive, maxRemoteVideoStreamsToUse]);\n const gridParticipants = getGridParticipants();\n const getOverflowGalleryRemoteParticipants = useCallback((): (VideoGalleryParticipant | VideoGalleryRemoteParticipant)[] => {\n if (isScreenShareActive && localParticipant) {\n const localParticipantPlusOverflow = [localParticipant].concat(visibleGridParticipants.current.concat(visibleOverflowGalleryParticipants.current));\n // If screen sharing is active, assign video and audio participants as overflow gallery participants\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return localParticipantPlusOverflow.concat(callingParticipants);\n return localParticipantPlusOverflow;\n } else if (isScreenShareActive) {\n // If screen sharing is active, assign video and audio participants as overflow gallery participants\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return visibleGridParticipants.current.concat(visibleOverflowGalleryParticipants.current.concat(callingParticipants));\n return visibleGridParticipants.current.concat(visibleOverflowGalleryParticipants.current);\n } else {\n // If screen sharing is not active, then assign all video tiles as grid tiles.\n // If there are no video tiles, then assign audio tiles as grid tiles.\n // if there are more overflow tiles than max streams then find the tiles that don't fit in the grid and put them in overflow\n // overflow should be empty if total participants including calling participants is less than max streams\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return visibleGridParticipants.current.length > 0 ? visibleOverflowGalleryParticipants.current.concat(callingParticipants) : visibleOverflowGalleryParticipants.current.length > maxRemoteVideoStreamsToUse ? visibleOverflowGalleryParticipants.current.slice(maxRemoteVideoStreamsToUse).concat(callingParticipants) : [];\n return visibleGridParticipants.current.length > 0 ? visibleOverflowGalleryParticipants.current : visibleOverflowGalleryParticipants.current.slice(maxRemoteVideoStreamsToUse);\n }\n }, [/* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */callingParticipants, isScreenShareActive, localParticipant, maxRemoteVideoStreamsToUse]);\n const overflowGalleryParticipants = getOverflowGalleryRemoteParticipants();\n return {\n gridParticipants,\n overflowGalleryParticipants: overflowGalleryParticipants\n };\n};\n\n/* @conditional-compile-remove(pinned-participants) */\nconst _useOrganizedParticipantsWithPinnedParticipants = (props: OrganizedParticipantsArgs): OrganizedParticipantsResult => {\n // map remote participants by userId\n const remoteParticipantMap = props.remoteParticipants.reduce((map, remoteParticipant) => {\n map[remoteParticipant.userId] = remoteParticipant;\n return map;\n }, {});\n\n // get pinned participants in the same order of pinned participant user ids using remoteParticipantMap\n const pinnedParticipants: VideoGalleryRemoteParticipant[] = [];\n props.pinnedParticipantUserIds?.forEach(id => {\n const pinnedParticipant = remoteParticipantMap[id];\n if (pinnedParticipant) {\n pinnedParticipants.push(pinnedParticipant);\n }\n });\n\n // get unpinned participants by filtering all remote participants using a set of pinned participant user ids\n const pinnedParticipantUserIdSet = new Set(props.pinnedParticipantUserIds);\n const unpinnedParticipants = props.remoteParticipants.filter(p => !pinnedParticipantUserIdSet.has(p.userId));\n const useOrganizedParticipantsProps = {\n ...props,\n // if there are pinned participants then we should only consider unpinned participants\n remoteParticipants: unpinnedParticipants\n };\n const useOrganizedParticipantsResult = _useOrganizedParticipants(useOrganizedParticipantsProps);\n if (pinnedParticipants.length === 0) {\n return useOrganizedParticipantsResult;\n }\n return {\n gridParticipants: props.isScreenShareActive ? [] : pinnedParticipants,\n overflowGalleryParticipants: props.isScreenShareActive ? pinnedParticipants.concat(useOrganizedParticipantsResult.overflowGalleryParticipants) : useOrganizedParticipantsResult.gridParticipants.concat(useOrganizedParticipantsResult.overflowGalleryParticipants)\n };\n};\nconst putVideoParticipantsFirst = (remoteParticipants: VideoGalleryRemoteParticipant[]): VideoGalleryRemoteParticipant[] => {\n const videoParticipants: VideoGalleryRemoteParticipant[] = [];\n const audioParticipants: VideoGalleryRemoteParticipant[] = [];\n remoteParticipants.forEach(p => {\n if (p.videoStream?.isAvailable) {\n videoParticipants.push(p);\n } else {\n audioParticipants.push(p);\n }\n });\n const remoteParticipantSortedByVideo = videoParticipants.concat(audioParticipants);\n return remoteParticipantSortedByVideo;\n};\n\n/**\n * Hook to determine which participants should be in grid and overflow gallery and their order respectively\n * @private\n */\nexport const useOrganizedParticipants = (args: OrganizedParticipantsArgs): OrganizedParticipantsResult => {\n /* @conditional-compile-remove(pinned-participants) */\n return _useOrganizedParticipantsWithPinnedParticipants(args);\n return _useOrganizedParticipants(args);\n};"]}
1
+ {"version":3,"file":"videoGalleryLayoutUtils.js","sourceRoot":"","sources":["../../../../../../../../react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { useCallback, useRef } from 'react';\nimport { smartDominantSpeakerParticipants } from '../../../gallery';\nimport { VideoGalleryParticipant, VideoGalleryRemoteParticipant } from '../../../types';\n/* @conditional-compile-remove(gallery-layouts) */\nimport { VideoGalleryLayout } from '../../VideoGallery';\n\n/**\n * Arguments used to determine a {@link OrganizedParticipantsResult}\n * @private\n */\nexport interface OrganizedParticipantsArgs {\n remoteParticipants: VideoGalleryRemoteParticipant[];\n localParticipant?: VideoGalleryParticipant;\n dominantSpeakers?: string[];\n maxRemoteVideoStreams?: number;\n maxOverflowGalleryDominantSpeakers?: number;\n isScreenShareActive?: boolean;\n pinnedParticipantUserIds?: string[];\n /* @conditional-compile-remove(gallery-layouts) */\n layout?: VideoGalleryLayout;\n}\n\n/**\n * A result that defines grid participants and overflow gallery participants in the VideoGallery\n * @private\n */\nexport interface OrganizedParticipantsResult {\n gridParticipants: VideoGalleryParticipant[];\n overflowGalleryParticipants: VideoGalleryParticipant[];\n}\n\nconst DEFAULT_MAX_OVERFLOW_GALLERY_DOMINANT_SPEAKERS = 6;\nconst DEFAULT_MAX_VIDEO_SREAMS = 4;\n/* @conditional-compile-remove(gallery-layouts) */\nconst MAX_GRID_PARTICIPANTS_NOT_LARGE_GALLERY = 9;\n\nconst _useOrganizedParticipants = (props: OrganizedParticipantsArgs): OrganizedParticipantsResult => {\n const visibleGridParticipants = useRef<VideoGalleryRemoteParticipant[]>([]);\n const visibleOverflowGalleryParticipants = useRef<VideoGalleryRemoteParticipant[]>([]);\n\n const {\n remoteParticipants = [],\n localParticipant,\n dominantSpeakers = [],\n maxRemoteVideoStreams = DEFAULT_MAX_VIDEO_SREAMS,\n maxOverflowGalleryDominantSpeakers = DEFAULT_MAX_OVERFLOW_GALLERY_DOMINANT_SPEAKERS,\n isScreenShareActive = false,\n pinnedParticipantUserIds = [],\n /* @conditional-compile-remove(gallery-layouts) */\n layout\n } = props;\n\n const calculateMaxRemoteVideoStreams = (): number => {\n /* @conditional-compile-remove(gallery-layouts) */\n if (maxRemoteVideoStreams > MAX_GRID_PARTICIPANTS_NOT_LARGE_GALLERY) {\n return MAX_GRID_PARTICIPANTS_NOT_LARGE_GALLERY;\n } else {\n return maxRemoteVideoStreams;\n }\n return maxRemoteVideoStreams;\n };\n\n const maxRemoteVideoStreamsToUse = calculateMaxRemoteVideoStreams();\n\n const videoParticipants = remoteParticipants.filter((p) => p.videoStream?.isAvailable);\n\n const participantsToSortTrampoline = (): VideoGalleryRemoteParticipant[] => {\n /* @conditional-compile-remove(gallery-layouts) */\n return layout !== 'floatingLocalVideo' ? putVideoParticipantsFirst(remoteParticipants) : videoParticipants;\n return videoParticipants;\n };\n\n visibleGridParticipants.current =\n pinnedParticipantUserIds.length > 0 || isScreenShareActive\n ? []\n : smartDominantSpeakerParticipants({\n participants: participantsToSortTrampoline(),\n dominantSpeakers,\n lastVisibleParticipants: visibleGridParticipants.current,\n maxDominantSpeakers: maxRemoteVideoStreamsToUse\n }).slice(0, maxRemoteVideoStreamsToUse);\n\n /* @conditional-compile-remove(gallery-layouts) */\n const dominantSpeakerToGrid =\n layout === 'speaker'\n ? dominantSpeakers && dominantSpeakers[0]\n ? visibleGridParticipants.current.filter((p) => p.userId === dominantSpeakers[0])\n : [visibleGridParticipants.current[0]]\n : [];\n /* @conditional-compile-remove(gallery-layouts) */\n if (dominantSpeakerToGrid[0]) {\n visibleGridParticipants.current = dominantSpeakerToGrid;\n }\n\n const visibleGridParticipantsSet = new Set(visibleGridParticipants.current.map((p) => p.userId));\n\n const remoteParticipantsOrdered = putVideoParticipantsFirst(remoteParticipants);\n\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const callingParticipants = remoteParticipantsOrdered.filter((p) => p.state === ('Connecting' || 'Ringing'));\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n const callingParticipantsSet = new Set(callingParticipants.map((p) => p.userId));\n\n visibleOverflowGalleryParticipants.current = smartDominantSpeakerParticipants({\n participants: remoteParticipantsOrdered.filter(\n (p) =>\n !visibleGridParticipantsSet.has(p.userId) &&\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !callingParticipantsSet.has(\n p.userId\n )\n ),\n dominantSpeakers: dominantSpeakers,\n lastVisibleParticipants: visibleOverflowGalleryParticipants.current,\n maxDominantSpeakers: maxOverflowGalleryDominantSpeakers\n });\n\n const getGridParticipants = useCallback((): VideoGalleryRemoteParticipant[] => {\n if (isScreenShareActive) {\n return [];\n }\n // if we have no grid participants we need to cap the max number of overflowGallery participants in the grid\n // we will use the max streams provided to the function to find the max participants that can go in the grid\n // if there are less participants than max streams then we will use all participants including joining in the grid\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return visibleGridParticipants.current.length > 0\n ? visibleGridParticipants.current\n : visibleOverflowGalleryParticipants.current.length > maxRemoteVideoStreamsToUse\n ? visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse)\n : visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse).concat(callingParticipants);\n return visibleGridParticipants.current.length > 0\n ? visibleGridParticipants.current\n : visibleOverflowGalleryParticipants.current.slice(0, maxRemoteVideoStreamsToUse);\n }, [\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ callingParticipants,\n isScreenShareActive,\n maxRemoteVideoStreamsToUse\n ]);\n\n const gridParticipants = getGridParticipants();\n\n const getOverflowGalleryRemoteParticipants = useCallback((): (\n | VideoGalleryParticipant\n | VideoGalleryRemoteParticipant\n )[] => {\n if (isScreenShareActive && localParticipant) {\n const localParticipantPlusOverflow = [localParticipant].concat(\n visibleGridParticipants.current.concat(visibleOverflowGalleryParticipants.current)\n );\n // If screen sharing is active, assign video and audio participants as overflow gallery participants\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return localParticipantPlusOverflow.concat(callingParticipants);\n return localParticipantPlusOverflow;\n } else if (isScreenShareActive) {\n // If screen sharing is active, assign video and audio participants as overflow gallery participants\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return visibleGridParticipants.current.concat(\n visibleOverflowGalleryParticipants.current.concat(callingParticipants)\n );\n return visibleGridParticipants.current.concat(visibleOverflowGalleryParticipants.current);\n } else {\n // If screen sharing is not active, then assign all video tiles as grid tiles.\n // If there are no video tiles, then assign audio tiles as grid tiles.\n // if there are more overflow tiles than max streams then find the tiles that don't fit in the grid and put them in overflow\n // overflow should be empty if total participants including calling participants is less than max streams\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n return visibleGridParticipants.current.length > 0\n ? visibleOverflowGalleryParticipants.current.concat(callingParticipants)\n : visibleOverflowGalleryParticipants.current.length > maxRemoteVideoStreamsToUse\n ? visibleOverflowGalleryParticipants.current.slice(maxRemoteVideoStreamsToUse).concat(callingParticipants)\n : [];\n return visibleGridParticipants.current.length > 0\n ? visibleOverflowGalleryParticipants.current\n : visibleOverflowGalleryParticipants.current.slice(maxRemoteVideoStreamsToUse);\n }\n }, [\n /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ callingParticipants,\n isScreenShareActive,\n localParticipant,\n maxRemoteVideoStreamsToUse\n ]);\n\n const overflowGalleryParticipants = getOverflowGalleryRemoteParticipants();\n\n return { gridParticipants, overflowGalleryParticipants: overflowGalleryParticipants };\n};\n\n/* @conditional-compile-remove(pinned-participants) */\nconst _useOrganizedParticipantsWithPinnedParticipants = (\n props: OrganizedParticipantsArgs\n): OrganizedParticipantsResult => {\n // map remote participants by userId\n const remoteParticipantMap = props.remoteParticipants.reduce((map, remoteParticipant) => {\n map[remoteParticipant.userId] = remoteParticipant;\n return map;\n }, {});\n\n // get pinned participants in the same order of pinned participant user ids using remoteParticipantMap\n const pinnedParticipants: VideoGalleryRemoteParticipant[] = [];\n props.pinnedParticipantUserIds?.forEach((id) => {\n const pinnedParticipant = remoteParticipantMap[id];\n if (pinnedParticipant) {\n pinnedParticipants.push(pinnedParticipant);\n }\n });\n\n // get unpinned participants by filtering all remote participants using a set of pinned participant user ids\n const pinnedParticipantUserIdSet = new Set(props.pinnedParticipantUserIds);\n const unpinnedParticipants = props.remoteParticipants.filter((p) => !pinnedParticipantUserIdSet.has(p.userId));\n\n const useOrganizedParticipantsProps = {\n ...props,\n // if there are pinned participants then we should only consider unpinned participants\n remoteParticipants: unpinnedParticipants\n };\n\n const useOrganizedParticipantsResult = _useOrganizedParticipants(useOrganizedParticipantsProps);\n\n if (pinnedParticipants.length === 0) {\n return useOrganizedParticipantsResult;\n }\n\n return {\n gridParticipants: props.isScreenShareActive ? [] : pinnedParticipants,\n overflowGalleryParticipants: props.isScreenShareActive\n ? pinnedParticipants.concat(useOrganizedParticipantsResult.overflowGalleryParticipants)\n : useOrganizedParticipantsResult.gridParticipants.concat(\n useOrganizedParticipantsResult.overflowGalleryParticipants\n )\n };\n};\n\nconst putVideoParticipantsFirst = (\n remoteParticipants: VideoGalleryRemoteParticipant[]\n): VideoGalleryRemoteParticipant[] => {\n const videoParticipants: VideoGalleryRemoteParticipant[] = [];\n const audioParticipants: VideoGalleryRemoteParticipant[] = [];\n remoteParticipants.forEach((p) => {\n if (p.videoStream?.isAvailable) {\n videoParticipants.push(p);\n } else {\n audioParticipants.push(p);\n }\n });\n const remoteParticipantSortedByVideo = videoParticipants.concat(audioParticipants);\n return remoteParticipantSortedByVideo;\n};\n\n/**\n * Hook to determine which participants should be in grid and overflow gallery and their order respectively\n * @private\n */\nexport const useOrganizedParticipants = (args: OrganizedParticipantsArgs): OrganizedParticipantsResult => {\n /* @conditional-compile-remove(pinned-participants) */\n return _useOrganizedParticipantsWithPinnedParticipants(args);\n return _useOrganizedParticipants(args);\n};\n"]}