@azure/communication-react 1.14.0-alpha-202403140012 → 1.14.0-alpha-202403160012

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 (153) hide show
  1. package/dist/communication-react.d.ts +39 -1
  2. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-D1KqCTKr.js → RichTextSendBoxWrapper-BCdGFyar.js} +2 -2
  3. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-D1KqCTKr.js.map → RichTextSendBoxWrapper-BCdGFyar.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{index-DikMcJD4.js → index-BfFCLrEO.js} +538 -337
  5. package/dist/dist-cjs/communication-react/index-BfFCLrEO.js.map +1 -0
  6. package/dist/dist-cjs/communication-react/index.js +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  9. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +0 -3
  10. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  11. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +0 -3
  12. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  13. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +0 -7
  14. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  15. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js +3 -11
  16. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  17. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +3 -9
  18. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  19. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  20. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +5 -16
  21. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  22. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +4 -17
  23. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  24. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +35 -0
  25. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  26. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts +8 -1
  27. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +42 -9
  28. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  29. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +46 -1
  30. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  31. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +3 -1
  32. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +24 -14
  33. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  34. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.d.ts +16 -1
  35. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js +38 -2
  36. package/dist/dist-esm/calling-stateful-client/src/CaptionsSubscriber.js.map +1 -1
  37. package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts +6 -1
  38. package/dist/dist-esm/calling-stateful-client/src/Converter.js +11 -6
  39. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  40. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.d.ts +17 -0
  41. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.js +36 -0
  42. package/dist/dist-esm/calling-stateful-client/src/LocalRecordingSubscriber.js.map +1 -0
  43. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js +0 -1
  44. package/dist/dist-esm/calling-stateful-client/src/OptimalVideoCountSubscriber.js.map +1 -1
  45. package/dist/dist-esm/calling-stateful-client/src/RaiseHandSubscriber.js +0 -2
  46. package/dist/dist-esm/calling-stateful-client/src/RaiseHandSubscriber.js.map +1 -1
  47. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.d.ts +1 -0
  48. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js +11 -0
  49. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js.map +1 -1
  50. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts +1 -0
  51. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  52. package/dist/dist-esm/calling-stateful-client/src/index-public.d.ts +1 -0
  53. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  54. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js +1 -1
  55. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  56. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js +6 -2
  57. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  58. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.d.ts +1 -1
  59. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  60. package/dist/dist-esm/communication-react/src/index.js +0 -1
  61. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  62. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js +5 -2
  63. package/dist/dist-esm/react-components/src/components/CaptionsSettingsModal.js.map +1 -1
  64. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js +19 -8
  65. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  66. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.d.ts +4 -0
  67. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js.map +1 -1
  68. package/dist/dist-esm/react-components/src/components/Drawer/ReactionDrawerMenuItem.d.ts +29 -0
  69. package/dist/dist-esm/react-components/src/components/Drawer/ReactionDrawerMenuItem.js +60 -0
  70. package/dist/dist-esm/react-components/src/components/Drawer/ReactionDrawerMenuItem.js.map +1 -0
  71. package/dist/dist-esm/react-components/src/components/Drawer/index.d.ts +2 -0
  72. package/dist/dist-esm/react-components/src/components/Drawer/index.js +2 -0
  73. package/dist/dist-esm/react-components/src/components/Drawer/index.js.map +1 -1
  74. package/dist/dist-esm/react-components/src/components/ImageOverlay.js +16 -8
  75. package/dist/dist-esm/react-components/src/components/ImageOverlay.js.map +1 -1
  76. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +2 -6
  77. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  78. package/dist/dist-esm/react-components/src/components/ParticipantList.js +3 -17
  79. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  80. package/dist/dist-esm/react-components/src/components/RaiseHandButton.js +0 -7
  81. package/dist/dist-esm/react-components/src/components/RaiseHandButton.js.map +1 -1
  82. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +1 -3
  83. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  84. package/dist/dist-esm/react-components/src/components/VideoGallery.js +1 -3
  85. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  86. package/dist/dist-esm/react-components/src/components/VideoTile.js +3 -9
  87. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  88. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.js +0 -2
  89. package/dist/dist-esm/react-components/src/components/assets/RaisedHandIcon.js.map +1 -1
  90. package/dist/dist-esm/react-components/src/components/index.js +0 -1
  91. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  92. package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.d.ts +12 -0
  93. package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.js +47 -3
  94. package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.js.map +1 -1
  95. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  96. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  97. package/dist/dist-esm/react-components/src/theming/icons.js +0 -5
  98. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  99. package/dist/dist-esm/react-components/src/theming/themes.js +1 -3
  100. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  101. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  102. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  103. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +1 -0
  104. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +43 -18
  105. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  106. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  107. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +11 -3
  108. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  109. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +1 -15
  110. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  111. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js +0 -2
  112. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  113. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js +0 -8
  114. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/RaiseHand.js.map +1 -1
  115. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +0 -3
  116. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  117. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +0 -1
  118. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  119. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js +1 -9
  120. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
  121. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +0 -3
  122. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  123. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +0 -4
  124. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  125. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  126. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +0 -2
  127. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  128. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.js.map +1 -1
  129. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +1 -1
  130. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  131. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js +1 -6
  132. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  133. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.d.ts +1 -0
  134. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js +1 -1
  135. package/dist/dist-esm/react-composites/src/composites/common/CaptionsBanner.js.map +1 -1
  136. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.d.ts +1 -0
  137. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +3 -6
  138. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  139. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js +0 -5
  140. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
  141. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.d.ts +4 -0
  142. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js +32 -33
  143. package/dist/dist-esm/react-composites/src/composites/common/Drawer/MoreDrawer.js.map +1 -1
  144. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.d.ts +3 -0
  145. package/dist/dist-esm/react-composites/src/composites/common/Drawer/PreparedMoreDrawer.js.map +1 -1
  146. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js +1 -3
  147. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  148. package/dist/dist-esm/react-composites/src/composites/common/icons.js +0 -1
  149. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  150. package/dist/dist-esm/react-composites/src/composites/common/types/CommonCallControlOptions.js.map +1 -1
  151. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  152. package/package.json +1 -1
  153. package/dist/dist-cjs/communication-react/index-DikMcJD4.js.map +0 -1
@@ -17,7 +17,6 @@ import { memoizedConvertAllremoteParticipantsBetaRelease } from './utils/partici
17
17
  import { memoizedConvertAllremoteParticipantsBeta } from './utils/participantListSelectorUtils';
18
18
  /* @conditional-compile-remove(spotlight) */
19
19
  import { memoizedSpotlight } from './utils/participantListSelectorUtils';
20
- /* @conditional-compile-remove(raise-hand) */
21
20
  import { getLocalParticipantRaisedHand } from './baseSelectors';
22
21
  /* @conditional-compile-remove(reaction) */
23
22
  import { getLocalParticipantReactionState } from './baseSelectors';
@@ -59,9 +58,7 @@ const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipan
59
58
  const remoteParticipantReaction = memoizedConvertToVideoTileReaction(participant.reactionState);
60
59
  /* @conditional-compile-remove(spotlight) */
61
60
  const spotlight = memoizedSpotlight(spotlightedParticipants, toFlatCommunicationIdentifier(participant.identifier));
62
- return memoizeFn(toFlatCommunicationIdentifier(participant.identifier), displayName, state, participant.isMuted, isScreenSharing, participant.isSpeaking,
63
- /* @conditional-compile-remove(raise-hand) */
64
- participant.raisedHand, localUserCanRemoveOthers,
61
+ return memoizeFn(toFlatCommunicationIdentifier(participant.identifier), displayName, state, participant.isMuted, isScreenSharing, participant.isSpeaking, participant.raisedHand, localUserCanRemoveOthers,
65
62
  /* @conditional-compile-remove(reaction) */
66
63
  remoteParticipantReaction,
67
64
  /* @conditional-compile-remove(spotlight) */
@@ -101,7 +98,7 @@ export const participantListSelector = createSelector([
101
98
  getRemoteParticipantsExcludingConsumers,
102
99
  getIsScreenSharingOn,
103
100
  getIsMuted,
104
- /* @conditional-compile-remove(raise-hand) */ getLocalParticipantRaisedHand,
101
+ getLocalParticipantRaisedHand,
105
102
  getRole,
106
103
  getParticipantCount,
107
104
  /* @conditional-compile-remove(hide-attendee-name) */
@@ -110,9 +107,7 @@ export const participantListSelector = createSelector([
110
107
  getLocalParticipantReactionState,
111
108
  /* @conditional-compile-remove(spotlight) */
112
109
  getSpotlightCallFeature
113
- ], (userId, displayName, remoteParticipants, isScreenSharingOn, isMuted,
114
- /* @conditional-compile-remove(raise-hand) */
115
- raisedHand, role, partitipantCount,
110
+ ], (userId, displayName, remoteParticipants, isScreenSharingOn, isMuted, raisedHand, role, partitipantCount,
116
111
  /* @conditional-compile-remove(hide-attendee-name) */
117
112
  isHideAttendeeNamesEnabled,
118
113
  /* @conditional-compile-remove(reaction) */
@@ -136,7 +131,6 @@ spotlightCallFeature) => {
136
131
  displayName: displayName,
137
132
  isScreenSharing: isScreenSharingOn,
138
133
  isMuted: isMuted,
139
- /* @conditional-compile-remove(raise-hand) */
140
134
  raisedHand: raisedHand,
141
135
  state: 'Connected',
142
136
  // Local participant can never remove themselves.
@@ -1 +1 @@
1
- {"version":3,"file":"participantListSelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/participantListSelector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallClientState, RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { createSelector } from 'reselect';\nimport {\n getIdentifier,\n getDisplayName,\n getIsScreenSharingOn,\n getIsMuted,\n CallingBaseSelectorProps\n} from './baseSelectors';\nimport { getRole } from './baseSelectors';\n/* @conditional-compile-remove(hide-attendee-name) */\nimport { isHideAttendeeNamesEnabled } from './baseSelectors';\nimport { CallParticipantListParticipant } from '@internal/react-components';\nimport { _isRingingPSTNParticipant, _updateUserDisplayNames } from './utils/callUtils';\nimport { memoizedConvertAllremoteParticipants } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(spotlight) */\nimport { memoizedConvertAllremoteParticipantsBetaSpotlight } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(reaction) */\nimport { memoizedConvertToVideoTileReaction } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(rooms) */\nimport { memoizedConvertAllremoteParticipantsBetaRelease } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(reaction) */\nimport { memoizedConvertAllremoteParticipantsBeta } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(spotlight) */\nimport { memoizedSpotlight } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(raise-hand) */\nimport { getLocalParticipantRaisedHand } from './baseSelectors';\n/* @conditional-compile-remove(reaction) */\nimport { getLocalParticipantReactionState } from './baseSelectors';\n/* @conditional-compile-remove(spotlight) */\nimport { getSpotlightCallFeature } from './baseSelectors';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { getParticipantCount } from './baseSelectors';\nimport { isMicrosoftTeamsAppIdentifier, isPhoneNumberIdentifier } from '@azure/communication-common';\nimport { ParticipantRole, SpotlightedParticipant } from '@azure/communication-calling';\n/* @conditional-compile-remove(hide-attendee-name) */\nimport { maskDisplayNameWithRole } from './utils/callUtils';\nimport { getRemoteParticipantsExcludingConsumers } from './getRemoteParticipantsExcludingConsumers';\n\nconst convertRemoteParticipantsToParticipantListParticipants = (\n remoteParticipants: RemoteParticipantState[],\n localUserCanRemoveOthers: boolean,\n isHideAttendeeNamesEnabled?: boolean,\n localUserRole?: ParticipantRole,\n spotlightedParticipants?: SpotlightedParticipant[]\n): CallParticipantListParticipant[] => {\n const conversionCallback = (\n memoizeFn: (...args: any[]) => CallParticipantListParticipant\n ): CallParticipantListParticipant[] => {\n return (\n remoteParticipants\n // Filter out MicrosoftBot participants\n .filter((participant: RemoteParticipantState) => {\n return !isMicrosoftTeamsAppIdentifier(participant.identifier);\n return true;\n })\n /**\n * hiding participants who are inLobby, idle, or connecting in ACS clients till we can admit users through ACS clients.\n * phone users will be in the connecting state until they are connected to the call.\n */\n .filter((participant) => {\n return (\n !['InLobby', 'Idle', 'Connecting', 'Disconnected'].includes(participant.state) ||\n isPhoneNumberIdentifier(participant.identifier)\n );\n })\n .map((participant: RemoteParticipantState) => {\n const isScreenSharing = Object.values(participant.videoStreams).some(\n (videoStream) => videoStream.mediaStreamType === 'ScreenSharing' && videoStream.isAvailable\n );\n /**\n * We want to check the participant to see if they are a PSTN participant joining the call\n * and mapping their state to be 'Ringing'\n */\n const state = _isRingingPSTNParticipant(participant);\n let displayName = participant.displayName;\n /* @conditional-compile-remove(hide-attendee-name) */\n displayName = maskDisplayNameWithRole(\n displayName,\n localUserRole,\n participant.role,\n isHideAttendeeNamesEnabled\n );\n /* @conditional-compile-remove(reaction) */\n const remoteParticipantReaction = memoizedConvertToVideoTileReaction(participant.reactionState);\n /* @conditional-compile-remove(spotlight) */\n const spotlight = memoizedSpotlight(\n spotlightedParticipants,\n toFlatCommunicationIdentifier(participant.identifier)\n );\n return memoizeFn(\n toFlatCommunicationIdentifier(participant.identifier),\n displayName,\n state,\n participant.isMuted,\n isScreenSharing,\n participant.isSpeaking,\n /* @conditional-compile-remove(raise-hand) */\n participant.raisedHand,\n localUserCanRemoveOthers,\n /* @conditional-compile-remove(reaction) */\n remoteParticipantReaction,\n /* @conditional-compile-remove(spotlight) */\n spotlight\n );\n })\n .sort((a, b) => {\n const nameA = a.displayName?.toLowerCase() || '';\n const nameB = b.displayName?.toLowerCase() || '';\n if (nameA < nameB) {\n return -1;\n } else if (nameA > nameB) {\n return 1;\n } else {\n return 0;\n }\n })\n );\n };\n /* @conditional-compile-remove(spotlight) */\n return memoizedConvertAllremoteParticipantsBetaSpotlight(conversionCallback);\n /* @conditional-compile-remove(reaction) */\n return memoizedConvertAllremoteParticipantsBeta(conversionCallback);\n /* @conditional-compile-remove(rooms) */\n return memoizedConvertAllremoteParticipantsBetaRelease(conversionCallback);\n return memoizedConvertAllremoteParticipants(conversionCallback);\n};\n\n/**\n * Selector type for {@link ParticipantList} component.\n *\n * @public\n */\nexport type ParticipantListSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n /* @conditional-compile-remove(total-participant-count) */\n totalParticipantCount?: number;\n};\n\n/**\n * Selects data that drives {@link ParticipantList} component.\n *\n * @public\n */\nexport const participantListSelector: ParticipantListSelector = createSelector(\n [\n getIdentifier,\n getDisplayName,\n getRemoteParticipantsExcludingConsumers,\n getIsScreenSharingOn,\n getIsMuted,\n /* @conditional-compile-remove(raise-hand) */ getLocalParticipantRaisedHand,\n getRole,\n getParticipantCount,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(reaction) */\n getLocalParticipantReactionState,\n /* @conditional-compile-remove(spotlight) */\n getSpotlightCallFeature\n ],\n (\n userId,\n displayName,\n remoteParticipants,\n isScreenSharingOn,\n isMuted,\n /* @conditional-compile-remove(raise-hand) */\n raisedHand,\n role,\n partitipantCount,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(reaction) */\n localParticipantReactionState,\n /* @conditional-compile-remove(spotlight) */\n spotlightCallFeature\n ): {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n totalParticipantCount?: number;\n } => {\n const localUserCanRemoveOthers = localUserCanRemoveOthersTrampoline(role);\n const participants = remoteParticipants\n ? convertRemoteParticipantsToParticipantListParticipants(\n updateUserDisplayNamesTrampoline(Object.values(remoteParticipants)),\n localUserCanRemoveOthers,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(hide-attendee-name) */\n role,\n /* @conditional-compile-remove(spotlight) */\n spotlightCallFeature?.spotlightedParticipants\n )\n : [];\n /* @conditional-compile-remove(reaction) */\n const localParticipantReaction = memoizedConvertToVideoTileReaction(localParticipantReactionState);\n participants.push({\n userId: userId,\n displayName: displayName,\n isScreenSharing: isScreenSharingOn,\n isMuted: isMuted,\n /* @conditional-compile-remove(raise-hand) */\n raisedHand: raisedHand,\n state: 'Connected',\n // Local participant can never remove themselves.\n isRemovable: false,\n /* @conditional-compile-remove(reaction) */\n reaction: localParticipantReaction,\n /* @conditional-compile-remove(spotlight) */\n spotlight: memoizedSpotlight(spotlightCallFeature?.spotlightedParticipants, userId)\n });\n /* @conditional-compile-remove(total-participant-count) */\n const totalParticipantCount = partitipantCount;\n return {\n participants: participants,\n myUserId: userId,\n /* @conditional-compile-remove(total-participant-count) */\n totalParticipantCount: totalParticipantCount\n };\n }\n);\n\nconst updateUserDisplayNamesTrampoline = (remoteParticipants: RemoteParticipantState[]): RemoteParticipantState[] => {\n /* @conditional-compile-remove(PSTN-calls) */\n return _updateUserDisplayNames(remoteParticipants);\n return remoteParticipants;\n};\n\nconst localUserCanRemoveOthersTrampoline = (role?: string): boolean => {\n /* @conditional-compile-remove(rooms) */\n return role === 'Presenter' || role === 'Unknown' || role === undefined;\n return true;\n};\n"]}
1
+ {"version":3,"file":"participantListSelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/participantListSelector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CallClientState, RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { createSelector } from 'reselect';\nimport {\n getIdentifier,\n getDisplayName,\n getIsScreenSharingOn,\n getIsMuted,\n CallingBaseSelectorProps\n} from './baseSelectors';\nimport { getRole } from './baseSelectors';\n/* @conditional-compile-remove(hide-attendee-name) */\nimport { isHideAttendeeNamesEnabled } from './baseSelectors';\nimport { CallParticipantListParticipant } from '@internal/react-components';\nimport { _isRingingPSTNParticipant, _updateUserDisplayNames } from './utils/callUtils';\nimport { memoizedConvertAllremoteParticipants } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(spotlight) */\nimport { memoizedConvertAllremoteParticipantsBetaSpotlight } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(reaction) */\nimport { memoizedConvertToVideoTileReaction } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(rooms) */\nimport { memoizedConvertAllremoteParticipantsBetaRelease } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(reaction) */\nimport { memoizedConvertAllremoteParticipantsBeta } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(spotlight) */\nimport { memoizedSpotlight } from './utils/participantListSelectorUtils';\nimport { getLocalParticipantRaisedHand } from './baseSelectors';\n/* @conditional-compile-remove(reaction) */\nimport { getLocalParticipantReactionState } from './baseSelectors';\n/* @conditional-compile-remove(spotlight) */\nimport { getSpotlightCallFeature } from './baseSelectors';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { getParticipantCount } from './baseSelectors';\nimport { isMicrosoftTeamsAppIdentifier, isPhoneNumberIdentifier } from '@azure/communication-common';\nimport { ParticipantRole, SpotlightedParticipant } from '@azure/communication-calling';\n/* @conditional-compile-remove(hide-attendee-name) */\nimport { maskDisplayNameWithRole } from './utils/callUtils';\nimport { getRemoteParticipantsExcludingConsumers } from './getRemoteParticipantsExcludingConsumers';\n\nconst convertRemoteParticipantsToParticipantListParticipants = (\n remoteParticipants: RemoteParticipantState[],\n localUserCanRemoveOthers: boolean,\n isHideAttendeeNamesEnabled?: boolean,\n localUserRole?: ParticipantRole,\n spotlightedParticipants?: SpotlightedParticipant[]\n): CallParticipantListParticipant[] => {\n const conversionCallback = (\n memoizeFn: (...args: any[]) => CallParticipantListParticipant\n ): CallParticipantListParticipant[] => {\n return (\n remoteParticipants\n // Filter out MicrosoftBot participants\n .filter((participant: RemoteParticipantState) => {\n return !isMicrosoftTeamsAppIdentifier(participant.identifier);\n return true;\n })\n /**\n * hiding participants who are inLobby, idle, or connecting in ACS clients till we can admit users through ACS clients.\n * phone users will be in the connecting state until they are connected to the call.\n */\n .filter((participant) => {\n return (\n !['InLobby', 'Idle', 'Connecting', 'Disconnected'].includes(participant.state) ||\n isPhoneNumberIdentifier(participant.identifier)\n );\n })\n .map((participant: RemoteParticipantState) => {\n const isScreenSharing = Object.values(participant.videoStreams).some(\n (videoStream) => videoStream.mediaStreamType === 'ScreenSharing' && videoStream.isAvailable\n );\n /**\n * We want to check the participant to see if they are a PSTN participant joining the call\n * and mapping their state to be 'Ringing'\n */\n const state = _isRingingPSTNParticipant(participant);\n let displayName = participant.displayName;\n /* @conditional-compile-remove(hide-attendee-name) */\n displayName = maskDisplayNameWithRole(\n displayName,\n localUserRole,\n participant.role,\n isHideAttendeeNamesEnabled\n );\n /* @conditional-compile-remove(reaction) */\n const remoteParticipantReaction = memoizedConvertToVideoTileReaction(participant.reactionState);\n /* @conditional-compile-remove(spotlight) */\n const spotlight = memoizedSpotlight(\n spotlightedParticipants,\n toFlatCommunicationIdentifier(participant.identifier)\n );\n return memoizeFn(\n toFlatCommunicationIdentifier(participant.identifier),\n displayName,\n state,\n participant.isMuted,\n isScreenSharing,\n participant.isSpeaking,\n participant.raisedHand,\n localUserCanRemoveOthers,\n /* @conditional-compile-remove(reaction) */\n remoteParticipantReaction,\n /* @conditional-compile-remove(spotlight) */\n spotlight\n );\n })\n .sort((a, b) => {\n const nameA = a.displayName?.toLowerCase() || '';\n const nameB = b.displayName?.toLowerCase() || '';\n if (nameA < nameB) {\n return -1;\n } else if (nameA > nameB) {\n return 1;\n } else {\n return 0;\n }\n })\n );\n };\n /* @conditional-compile-remove(spotlight) */\n return memoizedConvertAllremoteParticipantsBetaSpotlight(conversionCallback);\n /* @conditional-compile-remove(reaction) */\n return memoizedConvertAllremoteParticipantsBeta(conversionCallback);\n /* @conditional-compile-remove(rooms) */\n return memoizedConvertAllremoteParticipantsBetaRelease(conversionCallback);\n return memoizedConvertAllremoteParticipants(conversionCallback);\n};\n\n/**\n * Selector type for {@link ParticipantList} component.\n *\n * @public\n */\nexport type ParticipantListSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n /* @conditional-compile-remove(total-participant-count) */\n totalParticipantCount?: number;\n};\n\n/**\n * Selects data that drives {@link ParticipantList} component.\n *\n * @public\n */\nexport const participantListSelector: ParticipantListSelector = createSelector(\n [\n getIdentifier,\n getDisplayName,\n getRemoteParticipantsExcludingConsumers,\n getIsScreenSharingOn,\n getIsMuted,\n getLocalParticipantRaisedHand,\n getRole,\n getParticipantCount,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(reaction) */\n getLocalParticipantReactionState,\n /* @conditional-compile-remove(spotlight) */\n getSpotlightCallFeature\n ],\n (\n userId,\n displayName,\n remoteParticipants,\n isScreenSharingOn,\n isMuted,\n raisedHand,\n role,\n partitipantCount,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(reaction) */\n localParticipantReactionState,\n /* @conditional-compile-remove(spotlight) */\n spotlightCallFeature\n ): {\n participants: CallParticipantListParticipant[];\n myUserId: string;\n totalParticipantCount?: number;\n } => {\n const localUserCanRemoveOthers = localUserCanRemoveOthersTrampoline(role);\n const participants = remoteParticipants\n ? convertRemoteParticipantsToParticipantListParticipants(\n updateUserDisplayNamesTrampoline(Object.values(remoteParticipants)),\n localUserCanRemoveOthers,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(hide-attendee-name) */\n role,\n /* @conditional-compile-remove(spotlight) */\n spotlightCallFeature?.spotlightedParticipants\n )\n : [];\n /* @conditional-compile-remove(reaction) */\n const localParticipantReaction = memoizedConvertToVideoTileReaction(localParticipantReactionState);\n participants.push({\n userId: userId,\n displayName: displayName,\n isScreenSharing: isScreenSharingOn,\n isMuted: isMuted,\n raisedHand: raisedHand,\n state: 'Connected',\n // Local participant can never remove themselves.\n isRemovable: false,\n /* @conditional-compile-remove(reaction) */\n reaction: localParticipantReaction,\n /* @conditional-compile-remove(spotlight) */\n spotlight: memoizedSpotlight(spotlightCallFeature?.spotlightedParticipants, userId)\n });\n /* @conditional-compile-remove(total-participant-count) */\n const totalParticipantCount = partitipantCount;\n return {\n participants: participants,\n myUserId: userId,\n /* @conditional-compile-remove(total-participant-count) */\n totalParticipantCount: totalParticipantCount\n };\n }\n);\n\nconst updateUserDisplayNamesTrampoline = (remoteParticipants: RemoteParticipantState[]): RemoteParticipantState[] => {\n /* @conditional-compile-remove(PSTN-calls) */\n return _updateUserDisplayNames(remoteParticipants);\n return remoteParticipants;\n};\n\nconst localUserCanRemoveOthersTrampoline = (role?: string): boolean => {\n /* @conditional-compile-remove(rooms) */\n return role === 'Presenter' || role === 'Unknown' || role === undefined;\n return true;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"participantListSelectorUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/participantListSelectorUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { RemoteParticipantState } from '@azure/communication-calling';\n/* @conditional-compile-remove(spotlight) */\nimport { SpotlightedParticipant } from '@azure/communication-calling';\nimport { getIdentifierKind } from '@azure/communication-common';\nimport { fromFlatCommunicationIdentifier, memoizeFnAll } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(spotlight) */\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { CallParticipantListParticipant } from '@internal/react-components';\n/* @conditional-compile-remove(spotlight) */\nimport { Spotlight } from '@internal/react-components';\n/* @conditional-compile-remove(raise-hand) */\nimport { RaisedHandState } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(reaction) */\nimport { ReactionState } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(reaction) */\nimport { Reaction } from '@internal/react-components';\n/* @conditional-compile-remove(reaction) */\nimport memoizeOne from 'memoize-one';\n\n/**\n * @private\n */\nexport const memoizedConvertAllremoteParticipants = memoizeFnAll(\n (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean\n ): CallParticipantListParticipant => {\n return convertRemoteParticipantToParticipantListParticipant(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers\n );\n }\n);\n\nconst convertRemoteParticipantToParticipantListParticipant = (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean\n): CallParticipantListParticipant => {\n const identifier = fromFlatCommunicationIdentifier(userId);\n return {\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n // ACS users can not remove Teams users.\n // Removing unknown types of users is undefined.\n isRemovable:\n (getIdentifierKind(identifier).kind === 'communicationUser' ||\n getIdentifierKind(identifier).kind === 'phoneNumber') &&\n localUserCanRemoveOthers\n };\n};\n\n/* @conditional-compile-remove(rooms) */\n/**\n * @private\n */\nexport const memoizedConvertAllremoteParticipantsBetaRelease = memoizeFnAll(\n (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean\n ): CallParticipantListParticipant => {\n return convertRemoteParticipantToParticipantListParticipantBetaRelease(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers\n );\n }\n);\n\n/* @conditional-compile-remove(reaction) */\n/**\n * @private\n */\nexport const memoizedConvertAllremoteParticipantsBeta = memoizeFnAll(\n (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean,\n reaction: Reaction | undefined\n ): CallParticipantListParticipant => {\n return convertRemoteParticipantToParticipantListParticipantBeta(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers,\n reaction\n );\n }\n);\n\n/* @conditional-compile-remove(spotlight) */\n/**\n * @private\n */\nexport const memoizedConvertAllremoteParticipantsBetaSpotlight = memoizeFnAll(\n (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean,\n reaction: Reaction | undefined,\n isSpotlighted: Spotlight | undefined\n ): CallParticipantListParticipant => {\n return convertRemoteParticipantToParticipantListParticipantBetaSpotlight(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers,\n reaction,\n isSpotlighted\n );\n }\n);\n\n/* @conditional-compile-remove(reaction) */\n/**\n * @private\n */\nexport const memoizedConvertToVideoTileReaction = memoizeOne(\n (reactionState: ReactionState | undefined): Reaction | undefined => {\n return reactionState && reactionState.reactionMessage\n ? {\n reactionType: reactionState.reactionMessage.reactionType,\n receivedOn: reactionState.receivedOn\n }\n : undefined;\n }\n);\n\n/* @conditional-compile-remove(spotlight) */\n/**\n * @private\n */\nexport const memoizedSpotlight = memoizeOne(\n (spotlightedParticipants: SpotlightedParticipant[] | undefined, userId: string): Spotlight | undefined => {\n const spotlightOrder = spotlightedParticipants?.find(\n (spotlightedParticipant) => toFlatCommunicationIdentifier(spotlightedParticipant.identifier) === userId\n );\n return spotlightOrder ? { spotlightedOrderPosition: spotlightOrder.order } : undefined;\n }\n);\n\n/* @conditional-compile-remove(rooms) */\nconst convertRemoteParticipantToParticipantListParticipantBetaRelease = (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean\n): CallParticipantListParticipant => {\n return {\n ...convertRemoteParticipantToParticipantListParticipant(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers\n )\n };\n};\n\n/* @conditional-compile-remove(reaction) */\nconst convertRemoteParticipantToParticipantListParticipantBeta = (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean,\n reaction: Reaction | undefined\n): CallParticipantListParticipant => {\n return {\n ...convertRemoteParticipantToParticipantListParticipant(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers\n ),\n reaction\n };\n};\n\n/* @conditional-compile-remove(spotlight) */\nconst convertRemoteParticipantToParticipantListParticipantBetaSpotlight = (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean,\n reaction: Reaction | undefined,\n spotlight: Spotlight | undefined\n): CallParticipantListParticipant => {\n return {\n ...convertRemoteParticipantToParticipantListParticipant(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers\n ),\n reaction,\n spotlight\n };\n};\n"]}
1
+ {"version":3,"file":"participantListSelectorUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/participantListSelectorUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { RemoteParticipantState } from '@azure/communication-calling';\n/* @conditional-compile-remove(spotlight) */\nimport { SpotlightedParticipant } from '@azure/communication-calling';\nimport { getIdentifierKind } from '@azure/communication-common';\nimport { fromFlatCommunicationIdentifier, memoizeFnAll } from '@internal/acs-ui-common';\n/* @conditional-compile-remove(spotlight) */\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { CallParticipantListParticipant } from '@internal/react-components';\n/* @conditional-compile-remove(spotlight) */\nimport { Spotlight } from '@internal/react-components';\nimport { RaisedHandState } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(reaction) */\nimport { ReactionState } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(reaction) */\nimport { Reaction } from '@internal/react-components';\n/* @conditional-compile-remove(reaction) */\nimport memoizeOne from 'memoize-one';\n\n/**\n * @private\n */\nexport const memoizedConvertAllremoteParticipants = memoizeFnAll(\n (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean\n ): CallParticipantListParticipant => {\n return convertRemoteParticipantToParticipantListParticipant(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers\n );\n }\n);\n\nconst convertRemoteParticipantToParticipantListParticipant = (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean\n): CallParticipantListParticipant => {\n const identifier = fromFlatCommunicationIdentifier(userId);\n return {\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n // ACS users can not remove Teams users.\n // Removing unknown types of users is undefined.\n isRemovable:\n (getIdentifierKind(identifier).kind === 'communicationUser' ||\n getIdentifierKind(identifier).kind === 'phoneNumber') &&\n localUserCanRemoveOthers\n };\n};\n\n/* @conditional-compile-remove(rooms) */\n/**\n * @private\n */\nexport const memoizedConvertAllremoteParticipantsBetaRelease = memoizeFnAll(\n (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean\n ): CallParticipantListParticipant => {\n return convertRemoteParticipantToParticipantListParticipantBetaRelease(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers\n );\n }\n);\n\n/* @conditional-compile-remove(reaction) */\n/**\n * @private\n */\nexport const memoizedConvertAllremoteParticipantsBeta = memoizeFnAll(\n (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean,\n reaction: Reaction | undefined\n ): CallParticipantListParticipant => {\n return convertRemoteParticipantToParticipantListParticipantBeta(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers,\n reaction\n );\n }\n);\n\n/* @conditional-compile-remove(spotlight) */\n/**\n * @private\n */\nexport const memoizedConvertAllremoteParticipantsBetaSpotlight = memoizeFnAll(\n (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean,\n reaction: Reaction | undefined,\n isSpotlighted: Spotlight | undefined\n ): CallParticipantListParticipant => {\n return convertRemoteParticipantToParticipantListParticipantBetaSpotlight(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers,\n reaction,\n isSpotlighted\n );\n }\n);\n\n/* @conditional-compile-remove(reaction) */\n/**\n * @private\n */\nexport const memoizedConvertToVideoTileReaction = memoizeOne(\n (reactionState: ReactionState | undefined): Reaction | undefined => {\n return reactionState && reactionState.reactionMessage\n ? {\n reactionType: reactionState.reactionMessage.reactionType,\n receivedOn: reactionState.receivedOn\n }\n : undefined;\n }\n);\n\n/* @conditional-compile-remove(spotlight) */\n/**\n * @private\n */\nexport const memoizedSpotlight = memoizeOne(\n (spotlightedParticipants: SpotlightedParticipant[] | undefined, userId: string): Spotlight | undefined => {\n const spotlightOrder = spotlightedParticipants?.find(\n (spotlightedParticipant) => toFlatCommunicationIdentifier(spotlightedParticipant.identifier) === userId\n );\n return spotlightOrder ? { spotlightedOrderPosition: spotlightOrder.order } : undefined;\n }\n);\n\n/* @conditional-compile-remove(rooms) */\nconst convertRemoteParticipantToParticipantListParticipantBetaRelease = (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean\n): CallParticipantListParticipant => {\n return {\n ...convertRemoteParticipantToParticipantListParticipant(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers\n )\n };\n};\n\n/* @conditional-compile-remove(reaction) */\nconst convertRemoteParticipantToParticipantListParticipantBeta = (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean,\n reaction: Reaction | undefined\n): CallParticipantListParticipant => {\n return {\n ...convertRemoteParticipantToParticipantListParticipant(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers\n ),\n reaction\n };\n};\n\n/* @conditional-compile-remove(spotlight) */\nconst convertRemoteParticipantToParticipantListParticipantBetaSpotlight = (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n raisedHand: RaisedHandState | undefined,\n localUserCanRemoveOthers: boolean,\n reaction: Reaction | undefined,\n spotlight: Spotlight | undefined\n): CallParticipantListParticipant => {\n return {\n ...convertRemoteParticipantToParticipantListParticipant(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n raisedHand,\n localUserCanRemoveOthers\n ),\n reaction,\n spotlight\n };\n};\n"]}
@@ -37,9 +37,7 @@ export const _videoGalleryRemoteParticipantsMemo = (remoteParticipants, isHideAt
37
37
  displayName = maskDisplayNameWithRole(displayName, localUserRole, participant.role, isHideAttendeeNamesEnabled);
38
38
  /* @conditional-compile-remove(reaction) */
39
39
  const remoteParticipantReaction = memoizedConvertToVideoTileReaction(participant.reactionState);
40
- return memoizedFn(toFlatCommunicationIdentifier(participant.identifier), participant.isMuted, checkIsSpeaking(participant), participant.videoStreams, state, displayName,
41
- /* @conditional-compile-remove(raise-hand) */
42
- participant.raisedHand,
40
+ return memoizedFn(toFlatCommunicationIdentifier(participant.identifier), participant.isMuted, checkIsSpeaking(participant), participant.videoStreams, state, displayName, participant.raisedHand,
43
41
  /* @conditional-compile-remove(reaction) */
44
42
  remoteParticipantReaction,
45
43
  /* @conditional-compile-remove(spotlight) */
@@ -49,18 +47,14 @@ export const _videoGalleryRemoteParticipantsMemo = (remoteParticipants, isHideAt
49
47
  }));
50
48
  });
51
49
  };
52
- const memoizedAllConvertRemoteParticipant = memoizeFnAll((userId, isMuted, isSpeaking, videoStreams, state, displayName,
53
- /* @conditional-compile-remove(raise-hand) */
54
- raisedHand, // temp unknown type to build stable
50
+ const memoizedAllConvertRemoteParticipant = memoizeFnAll((userId, isMuted, isSpeaking, videoStreams, state, displayName, raisedHand, // temp unknown type to build stable
55
51
  /* @conditional-compile-remove(reaction) */
56
52
  reaction, // temp unknown type to build stable
57
53
  /* @conditional-compile-remove(spotlight) */
58
54
  spotlight, // temp unknown type to build stable
59
55
  /* @conditional-compile-remove(ppt-live) */
60
56
  contentSharingStream) => {
61
- return convertRemoteParticipantToVideoGalleryRemoteParticipant(userId, isMuted, isSpeaking, videoStreams, state, displayName,
62
- /* @conditional-compile-remove(raise-hand) */
63
- raisedHand,
57
+ return convertRemoteParticipantToVideoGalleryRemoteParticipant(userId, isMuted, isSpeaking, videoStreams, state, displayName, raisedHand,
64
58
  /* @conditional-compile-remove(reaction) */
65
59
  reaction,
66
60
  /* @conditional-compile-remove(spotlight) */
@@ -69,9 +63,7 @@ contentSharingStream) => {
69
63
  contentSharingStream);
70
64
  });
71
65
  /** @private */
72
- export const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId, isMuted, isSpeaking, videoStreams, state, displayName,
73
- /* @conditional-compile-remove(raise-hand) */
74
- raisedHand, // temp unknown type to build stable
66
+ export const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId, isMuted, isSpeaking, videoStreams, state, displayName, raisedHand, // temp unknown type to build stable
75
67
  /* @conditional-compile-remove(reaction) */
76
68
  reaction, // temp unknown type to build stable
77
69
  /* @conditional-compile-remove(spotlight) */
@@ -106,7 +98,6 @@ contentSharingStream) => {
106
98
  /* @conditional-compile-remove(one-to-n-calling) */
107
99
  /* @conditional-compile-remove(PSTN-calls) */
108
100
  state,
109
- /* @conditional-compile-remove(raise-hand) */
110
101
  raisedHand: raisedHand,
111
102
  /* @conditional-compile-remove(reaction) */
112
103
  reaction: reaction,
@@ -138,8 +129,7 @@ const convertRemoteContentSharingStreamToVideoGalleryStream = (stream) => {
138
129
  };
139
130
  /** @private */
140
131
  export const memoizeLocalParticipant = memoizeOne((identifier, displayName, isMuted, isScreenSharingOn, localVideoStream,
141
- /* @conditional-compile-remove(rooms) */ role,
142
- /* @conditional-compile-remove(raise-hand) */ raisedHand,
132
+ /* @conditional-compile-remove(rooms) */ role, raisedHand,
143
133
  /* @conditional-compile-remove(reaction) */ reaction,
144
134
  /* @conditional-compile-remove(spotlight) */ localSpotlight,
145
135
  /* @conditional-compile-remove(spotlight) */ capabilities) => {
@@ -156,7 +146,6 @@ export const memoizeLocalParticipant = memoizeOne((identifier, displayName, isMu
156
146
  },
157
147
  /* @conditional-compile-remove(rooms) */
158
148
  role,
159
- /* @conditional-compile-remove(raise-hand) */
160
149
  raisedHand: raisedHand,
161
150
  /* @conditional-compile-remove(reaction) */
162
151
  reaction: reaction,
@@ -1 +1 @@
1
- {"version":3,"file":"videoGalleryUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/videoGalleryUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n DominantSpeakersInfo,\n RemoteParticipantState as RemoteParticipantConnectionState\n} from '@azure/communication-calling';\n/* @conditional-compile-remove(spotlight) */\nimport { SpotlightedParticipant } from '@azure/communication-calling';\n/* @conditional-compile-remove(hide-attendee-name) */\nimport { ParticipantRole } from '@azure/communication-calling';\nimport { memoizeFnAll, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { RemoteParticipantState, RemoteVideoStreamState } from '@internal/calling-stateful-client';\nimport { VideoGalleryRemoteParticipant, VideoGalleryStream } from '@internal/react-components';\nimport memoizeOne from 'memoize-one';\nimport { _isRingingPSTNParticipant } from './callUtils';\n/* @conditional-compile-remove(hide-attendee-name) */\nimport { maskDisplayNameWithRole } from './callUtils';\nimport { checkIsSpeaking } from './SelectorUtils';\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(raise-hand) */\nimport { RaisedHandState } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(reaction) */\nimport { Reaction } from '@internal/react-components';\n/* @conditional-compile-remove(reaction) */\nimport { memoizedConvertToVideoTileReaction } from './participantListSelectorUtils';\n/* @conditional-compile-remove(spotlight) */\nimport { Spotlight } from '@internal/react-components';\n\n/** @internal */\nexport const _dominantSpeakersWithFlatId = (dominantSpeakers?: DominantSpeakersInfo): undefined | string[] => {\n return dominantSpeakers?.speakersList?.map(toFlatCommunicationIdentifier);\n};\n\n/** @internal */\nexport type _VideoGalleryRemoteParticipantsMemoFn = (\n remoteParticipants: RemoteParticipantState[] | undefined,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled?: boolean,\n /* @conditional-compile-remove(hide-attendee-name) */\n localUserRole?: ParticipantRole\n) => VideoGalleryRemoteParticipant[];\n\n/** @internal */\nexport const _videoGalleryRemoteParticipantsMemo: _VideoGalleryRemoteParticipantsMemoFn = (\n remoteParticipants: RemoteParticipantState[] | undefined,\n isHideAttendeeNamesEnabled?: boolean,\n /* @conditional-compile-remove(hide-attendee-name) */ localUserRole?\n): VideoGalleryRemoteParticipant[] => {\n if (!remoteParticipants) {\n return [];\n }\n\n return memoizedAllConvertRemoteParticipant((memoizedFn) => {\n return (\n Object.values(remoteParticipants)\n /**\n * hiding participants who are inLobby, idle, or connecting in ACS clients till we can admit users through ACS clients.\n * phone users will be in the connecting state until they are connected to the call.\n */\n .filter((participant: RemoteParticipantState) => {\n return (\n !['InLobby', 'Idle', 'Connecting', 'Disconnected'].includes(participant.state) ||\n isPhoneNumberIdentifier(participant.identifier)\n );\n })\n .map((participant: RemoteParticipantState) => {\n const state = _isRingingPSTNParticipant(participant);\n let displayName = participant.displayName;\n /* @conditional-compile-remove(hide-attendee-name) */\n displayName = maskDisplayNameWithRole(\n displayName,\n localUserRole,\n participant.role,\n isHideAttendeeNamesEnabled\n );\n /* @conditional-compile-remove(reaction) */\n const remoteParticipantReaction = memoizedConvertToVideoTileReaction(participant.reactionState);\n return memoizedFn(\n toFlatCommunicationIdentifier(participant.identifier),\n participant.isMuted,\n checkIsSpeaking(participant),\n participant.videoStreams,\n state,\n displayName,\n /* @conditional-compile-remove(raise-hand) */\n participant.raisedHand,\n /* @conditional-compile-remove(reaction) */\n remoteParticipantReaction,\n /* @conditional-compile-remove(spotlight) */\n participant.spotlight,\n /* @conditional-compile-remove(ppt-live) */\n participant.contentSharingStream\n );\n })\n );\n });\n};\n\nconst memoizedAllConvertRemoteParticipant = memoizeFnAll(\n (\n userId: string,\n isMuted: boolean,\n isSpeaking: boolean,\n videoStreams: { [key: number]: RemoteVideoStreamState },\n state: RemoteParticipantConnectionState,\n displayName?: string,\n /* @conditional-compile-remove(raise-hand) */\n raisedHand?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(reaction) */\n reaction?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(spotlight) */\n spotlight?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(ppt-live) */\n contentSharingStream?: HTMLElement\n ): VideoGalleryRemoteParticipant => {\n return convertRemoteParticipantToVideoGalleryRemoteParticipant(\n userId,\n isMuted,\n isSpeaking,\n videoStreams,\n state,\n displayName,\n /* @conditional-compile-remove(raise-hand) */\n raisedHand as RaisedHandState,\n /* @conditional-compile-remove(reaction) */\n reaction as Reaction,\n /* @conditional-compile-remove(spotlight) */\n spotlight as Spotlight,\n /* @conditional-compile-remove(ppt-live) */\n contentSharingStream\n );\n }\n);\n\n/** @private */\nexport const convertRemoteParticipantToVideoGalleryRemoteParticipant = (\n userId: string,\n isMuted: boolean,\n isSpeaking: boolean,\n videoStreams: { [key: number]: RemoteVideoStreamState },\n state: RemoteParticipantConnectionState,\n displayName?: string,\n /* @conditional-compile-remove(raise-hand) */\n raisedHand?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(reaction) */\n reaction?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(spotlight) */\n spotlight?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(ppt-live) */\n contentSharingStream?: HTMLElement\n): VideoGalleryRemoteParticipant => {\n const rawVideoStreamsArray = Object.values(videoStreams);\n let videoStream: VideoGalleryStream | undefined = undefined;\n let screenShareStream: VideoGalleryStream | undefined = undefined;\n\n const sdkRemoteVideoStream =\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'Video' && i.isAvailable) ||\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'Video');\n\n const sdkScreenShareStream =\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'ScreenSharing' && i.isAvailable) ||\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'ScreenSharing');\n\n if (sdkRemoteVideoStream) {\n videoStream = convertRemoteVideoStreamToVideoGalleryStream(sdkRemoteVideoStream);\n }\n if (sdkScreenShareStream) {\n screenShareStream = convertRemoteVideoStreamToVideoGalleryStream(sdkScreenShareStream);\n }\n\n /* @conditional-compile-remove(ppt-live) */\n if (contentSharingStream) {\n screenShareStream = convertRemoteContentSharingStreamToVideoGalleryStream(contentSharingStream);\n }\n\n return {\n userId,\n displayName,\n isMuted,\n isSpeaking,\n videoStream,\n screenShareStream,\n isScreenSharingOn: screenShareStream !== undefined && screenShareStream.isAvailable,\n /* @conditional-compile-remove(one-to-n-calling) */\n /* @conditional-compile-remove(PSTN-calls) */\n state,\n /* @conditional-compile-remove(raise-hand) */\n raisedHand: raisedHand as RaisedHandState,\n /* @conditional-compile-remove(reaction) */\n reaction: reaction as Reaction,\n /* @conditional-compile-remove(spotlight) */\n spotlight: spotlight as Spotlight\n };\n};\n\nconst convertRemoteVideoStreamToVideoGalleryStream = (stream: RemoteVideoStreamState): VideoGalleryStream => {\n return {\n id: stream.id,\n isAvailable: stream.isAvailable,\n /* @conditional-compile-remove(video-stream-is-receiving-flag) */\n isReceiving: stream.isReceiving,\n isMirrored: stream.view?.isMirrored,\n renderElement: stream.view?.target,\n scalingMode: stream.view?.scalingMode,\n streamSize: stream.streamSize\n };\n};\n\n/* @conditional-compile-remove(ppt-live) */\nconst convertRemoteContentSharingStreamToVideoGalleryStream = (stream: HTMLElement): VideoGalleryStream => {\n return {\n isAvailable: !!stream,\n isReceiving: true,\n isMirrored: false,\n renderElement: stream\n };\n};\n\n/** @private */\nexport const memoizeLocalParticipant = memoizeOne(\n (\n identifier,\n displayName,\n isMuted,\n isScreenSharingOn,\n localVideoStream,\n /* @conditional-compile-remove(rooms) */ role,\n /* @conditional-compile-remove(raise-hand) */ raisedHand,\n /* @conditional-compile-remove(reaction) */ reaction,\n /* @conditional-compile-remove(spotlight) */ localSpotlight,\n /* @conditional-compile-remove(spotlight) */ capabilities\n ) => ({\n userId: identifier,\n displayName: displayName ?? '',\n isMuted: isMuted,\n isScreenSharingOn: isScreenSharingOn,\n videoStream: {\n isAvailable: !!localVideoStream,\n isMirrored: localVideoStream?.view?.isMirrored,\n renderElement: localVideoStream?.view?.target\n },\n /* @conditional-compile-remove(rooms) */\n role,\n /* @conditional-compile-remove(raise-hand) */\n raisedHand: raisedHand,\n /* @conditional-compile-remove(reaction) */\n reaction: reaction,\n /* @conditional-compile-remove(spotlight) */\n spotlight: localSpotlight,\n /* @conditional-compile-remove(spotlight) */\n capabilities\n })\n);\n\n/* @conditional-compile-remove(spotlight) */\n/** @private */\nexport const memoizeSpotlightedParticipantIds = memoizeOne((spotlightedParticipants) =>\n spotlightedParticipants?.map((p: SpotlightedParticipant) => toFlatCommunicationIdentifier(p.identifier))\n);\n"]}
1
+ {"version":3,"file":"videoGalleryUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/videoGalleryUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n DominantSpeakersInfo,\n RemoteParticipantState as RemoteParticipantConnectionState\n} from '@azure/communication-calling';\n/* @conditional-compile-remove(spotlight) */\nimport { SpotlightedParticipant } from '@azure/communication-calling';\n/* @conditional-compile-remove(hide-attendee-name) */\nimport { ParticipantRole } from '@azure/communication-calling';\nimport { memoizeFnAll, toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { RemoteParticipantState, RemoteVideoStreamState } from '@internal/calling-stateful-client';\nimport { VideoGalleryRemoteParticipant, VideoGalleryStream } from '@internal/react-components';\nimport memoizeOne from 'memoize-one';\nimport { _isRingingPSTNParticipant } from './callUtils';\n/* @conditional-compile-remove(hide-attendee-name) */\nimport { maskDisplayNameWithRole } from './callUtils';\nimport { checkIsSpeaking } from './SelectorUtils';\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\nimport { RaisedHandState } from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(reaction) */\nimport { Reaction } from '@internal/react-components';\n/* @conditional-compile-remove(reaction) */\nimport { memoizedConvertToVideoTileReaction } from './participantListSelectorUtils';\n/* @conditional-compile-remove(spotlight) */\nimport { Spotlight } from '@internal/react-components';\n\n/** @internal */\nexport const _dominantSpeakersWithFlatId = (dominantSpeakers?: DominantSpeakersInfo): undefined | string[] => {\n return dominantSpeakers?.speakersList?.map(toFlatCommunicationIdentifier);\n};\n\n/** @internal */\nexport type _VideoGalleryRemoteParticipantsMemoFn = (\n remoteParticipants: RemoteParticipantState[] | undefined,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled?: boolean,\n /* @conditional-compile-remove(hide-attendee-name) */\n localUserRole?: ParticipantRole\n) => VideoGalleryRemoteParticipant[];\n\n/** @internal */\nexport const _videoGalleryRemoteParticipantsMemo: _VideoGalleryRemoteParticipantsMemoFn = (\n remoteParticipants: RemoteParticipantState[] | undefined,\n isHideAttendeeNamesEnabled?: boolean,\n /* @conditional-compile-remove(hide-attendee-name) */ localUserRole?\n): VideoGalleryRemoteParticipant[] => {\n if (!remoteParticipants) {\n return [];\n }\n\n return memoizedAllConvertRemoteParticipant((memoizedFn) => {\n return (\n Object.values(remoteParticipants)\n /**\n * hiding participants who are inLobby, idle, or connecting in ACS clients till we can admit users through ACS clients.\n * phone users will be in the connecting state until they are connected to the call.\n */\n .filter((participant: RemoteParticipantState) => {\n return (\n !['InLobby', 'Idle', 'Connecting', 'Disconnected'].includes(participant.state) ||\n isPhoneNumberIdentifier(participant.identifier)\n );\n })\n .map((participant: RemoteParticipantState) => {\n const state = _isRingingPSTNParticipant(participant);\n let displayName = participant.displayName;\n /* @conditional-compile-remove(hide-attendee-name) */\n displayName = maskDisplayNameWithRole(\n displayName,\n localUserRole,\n participant.role,\n isHideAttendeeNamesEnabled\n );\n /* @conditional-compile-remove(reaction) */\n const remoteParticipantReaction = memoizedConvertToVideoTileReaction(participant.reactionState);\n return memoizedFn(\n toFlatCommunicationIdentifier(participant.identifier),\n participant.isMuted,\n checkIsSpeaking(participant),\n participant.videoStreams,\n state,\n displayName,\n participant.raisedHand,\n /* @conditional-compile-remove(reaction) */\n remoteParticipantReaction,\n /* @conditional-compile-remove(spotlight) */\n participant.spotlight,\n /* @conditional-compile-remove(ppt-live) */\n participant.contentSharingStream\n );\n })\n );\n });\n};\n\nconst memoizedAllConvertRemoteParticipant = memoizeFnAll(\n (\n userId: string,\n isMuted: boolean,\n isSpeaking: boolean,\n videoStreams: { [key: number]: RemoteVideoStreamState },\n state: RemoteParticipantConnectionState,\n displayName?: string,\n raisedHand?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(reaction) */\n reaction?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(spotlight) */\n spotlight?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(ppt-live) */\n contentSharingStream?: HTMLElement\n ): VideoGalleryRemoteParticipant => {\n return convertRemoteParticipantToVideoGalleryRemoteParticipant(\n userId,\n isMuted,\n isSpeaking,\n videoStreams,\n state,\n displayName,\n raisedHand as RaisedHandState,\n /* @conditional-compile-remove(reaction) */\n reaction as Reaction,\n /* @conditional-compile-remove(spotlight) */\n spotlight as Spotlight,\n /* @conditional-compile-remove(ppt-live) */\n contentSharingStream\n );\n }\n);\n\n/** @private */\nexport const convertRemoteParticipantToVideoGalleryRemoteParticipant = (\n userId: string,\n isMuted: boolean,\n isSpeaking: boolean,\n videoStreams: { [key: number]: RemoteVideoStreamState },\n state: RemoteParticipantConnectionState,\n displayName?: string,\n raisedHand?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(reaction) */\n reaction?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(spotlight) */\n spotlight?: unknown, // temp unknown type to build stable\n /* @conditional-compile-remove(ppt-live) */\n contentSharingStream?: HTMLElement\n): VideoGalleryRemoteParticipant => {\n const rawVideoStreamsArray = Object.values(videoStreams);\n let videoStream: VideoGalleryStream | undefined = undefined;\n let screenShareStream: VideoGalleryStream | undefined = undefined;\n\n const sdkRemoteVideoStream =\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'Video' && i.isAvailable) ||\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'Video');\n\n const sdkScreenShareStream =\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'ScreenSharing' && i.isAvailable) ||\n Object.values(rawVideoStreamsArray).find((i) => i.mediaStreamType === 'ScreenSharing');\n\n if (sdkRemoteVideoStream) {\n videoStream = convertRemoteVideoStreamToVideoGalleryStream(sdkRemoteVideoStream);\n }\n if (sdkScreenShareStream) {\n screenShareStream = convertRemoteVideoStreamToVideoGalleryStream(sdkScreenShareStream);\n }\n\n /* @conditional-compile-remove(ppt-live) */\n if (contentSharingStream) {\n screenShareStream = convertRemoteContentSharingStreamToVideoGalleryStream(contentSharingStream);\n }\n\n return {\n userId,\n displayName,\n isMuted,\n isSpeaking,\n videoStream,\n screenShareStream,\n isScreenSharingOn: screenShareStream !== undefined && screenShareStream.isAvailable,\n /* @conditional-compile-remove(one-to-n-calling) */\n /* @conditional-compile-remove(PSTN-calls) */\n state,\n raisedHand: raisedHand as RaisedHandState,\n /* @conditional-compile-remove(reaction) */\n reaction: reaction as Reaction,\n /* @conditional-compile-remove(spotlight) */\n spotlight: spotlight as Spotlight\n };\n};\n\nconst convertRemoteVideoStreamToVideoGalleryStream = (stream: RemoteVideoStreamState): VideoGalleryStream => {\n return {\n id: stream.id,\n isAvailable: stream.isAvailable,\n /* @conditional-compile-remove(video-stream-is-receiving-flag) */\n isReceiving: stream.isReceiving,\n isMirrored: stream.view?.isMirrored,\n renderElement: stream.view?.target,\n scalingMode: stream.view?.scalingMode,\n streamSize: stream.streamSize\n };\n};\n\n/* @conditional-compile-remove(ppt-live) */\nconst convertRemoteContentSharingStreamToVideoGalleryStream = (stream: HTMLElement): VideoGalleryStream => {\n return {\n isAvailable: !!stream,\n isReceiving: true,\n isMirrored: false,\n renderElement: stream\n };\n};\n\n/** @private */\nexport const memoizeLocalParticipant = memoizeOne(\n (\n identifier,\n displayName,\n isMuted,\n isScreenSharingOn,\n localVideoStream,\n /* @conditional-compile-remove(rooms) */ role,\n raisedHand,\n /* @conditional-compile-remove(reaction) */ reaction,\n /* @conditional-compile-remove(spotlight) */ localSpotlight,\n /* @conditional-compile-remove(spotlight) */ capabilities\n ) => ({\n userId: identifier,\n displayName: displayName ?? '',\n isMuted: isMuted,\n isScreenSharingOn: isScreenSharingOn,\n videoStream: {\n isAvailable: !!localVideoStream,\n isMirrored: localVideoStream?.view?.isMirrored,\n renderElement: localVideoStream?.view?.target\n },\n /* @conditional-compile-remove(rooms) */\n role,\n raisedHand: raisedHand,\n /* @conditional-compile-remove(reaction) */\n reaction: reaction,\n /* @conditional-compile-remove(spotlight) */\n spotlight: localSpotlight,\n /* @conditional-compile-remove(spotlight) */\n capabilities\n })\n);\n\n/* @conditional-compile-remove(spotlight) */\n/** @private */\nexport const memoizeSpotlightedParticipantIds = memoizeOne((spotlightedParticipants) =>\n spotlightedParticipants?.map((p: SpotlightedParticipant) => toFlatCommunicationIdentifier(p.identifier))\n);\n"]}
@@ -7,14 +7,12 @@ import { getDisplayName, getDominantSpeakers, getIdentifier, getIsMuted, getIsSc
7
7
  import { getRole } from './baseSelectors';
8
8
  /* @conditional-compile-remove(hide-attendee-name) */
9
9
  import { isHideAttendeeNamesEnabled } from './baseSelectors';
10
- /* @conditional-compile-remove(optimal-video-count) */
11
10
  import { getOptimalVideoCount } from './baseSelectors';
12
11
  import { _updateUserDisplayNames } from './utils/callUtils';
13
12
  import { checkIsSpeaking } from './utils/SelectorUtils';
14
13
  import { _videoGalleryRemoteParticipantsMemo, _dominantSpeakersWithFlatId, convertRemoteParticipantToVideoGalleryRemoteParticipant, memoizeLocalParticipant } from './utils/videoGalleryUtils';
15
14
  /* @conditional-compile-remove(spotlight) */
16
15
  import { memoizeSpotlightedParticipantIds } from './utils/videoGalleryUtils';
17
- /* @conditional-compile-remove(raise-hand) */
18
16
  import { getLocalParticipantRaisedHand } from './baseSelectors';
19
17
  /* @conditional-compile-remove(reaction) */
20
18
  import { getLocalParticipantReactionState } from './baseSelectors';
@@ -36,11 +34,9 @@ export const videoGallerySelector = createSelector([
36
34
  getDisplayName,
37
35
  getIdentifier,
38
36
  getDominantSpeakers,
39
- /* @conditional-compile-remove(optimal-video-count) */
40
37
  getOptimalVideoCount,
41
38
  /* @conditional-compile-remove(rooms) */
42
39
  getRole,
43
- /* @conditional-compile-remove(raise-hand) */
44
40
  getLocalParticipantRaisedHand,
45
41
  /* @conditional-compile-remove(hide-attendee-name) */
46
42
  isHideAttendeeNamesEnabled,
@@ -50,13 +46,9 @@ export const videoGallerySelector = createSelector([
50
46
  getSpotlightCallFeature,
51
47
  /* @conditional-compile-remove(spotlight) */
52
48
  getCapabilities
53
- ], (screenShareRemoteParticipantId, remoteParticipants, localVideoStreams, isMuted, isScreenSharingOn, displayName, identifier, dominantSpeakers,
54
- /* @conditional-compile-remove(optimal-video-count) */
55
- optimalVideoCount,
49
+ ], (screenShareRemoteParticipantId, remoteParticipants, localVideoStreams, isMuted, isScreenSharingOn, displayName, identifier, dominantSpeakers, optimalVideoCount,
56
50
  /* @conditional-compile-remove(rooms) */
57
- role,
58
- /* @conditional-compile-remove(raise-hand) */
59
- raisedHand,
51
+ role, raisedHand,
60
52
  /* @conditional-compile-remove(hide-attendee-name) */
61
53
  isHideAttendeeNamesEnabled,
62
54
  /* @conditional-compile-remove(reaction) */
@@ -79,17 +71,13 @@ capabilities) => {
79
71
  const spotlightedParticipantIds = memoizeSpotlightedParticipantIds(spotlightCallFeature === null || spotlightCallFeature === void 0 ? void 0 : spotlightCallFeature.spotlightedParticipants);
80
72
  return {
81
73
  screenShareParticipant: screenShareRemoteParticipant
82
- ? convertRemoteParticipantToVideoGalleryRemoteParticipant(toFlatCommunicationIdentifier(screenShareRemoteParticipant.identifier), screenShareRemoteParticipant.isMuted, checkIsSpeaking(screenShareRemoteParticipant), screenShareRemoteParticipant.videoStreams, screenShareRemoteParticipant.state, screenShareRemoteParticipant.displayName,
83
- /* @conditional-compile-remove(raise-hand) */
84
- screenShareRemoteParticipant.raisedHand,
74
+ ? convertRemoteParticipantToVideoGalleryRemoteParticipant(toFlatCommunicationIdentifier(screenShareRemoteParticipant.identifier), screenShareRemoteParticipant.isMuted, checkIsSpeaking(screenShareRemoteParticipant), screenShareRemoteParticipant.videoStreams, screenShareRemoteParticipant.state, screenShareRemoteParticipant.displayName, screenShareRemoteParticipant.raisedHand,
85
75
  /* @conditional-compile-remove(spotlight) */
86
76
  screenShareRemoteParticipant.spotlight)
87
77
  : undefined,
88
78
  localParticipant: memoizeLocalParticipant(identifier, displayName, isMuted, isScreenSharingOn, localVideoStream,
89
79
  /* @conditional-compile-remove(rooms) */
90
- role,
91
- /* @conditional-compile-remove(raise-hand) */
92
- raisedHand,
80
+ role, raisedHand,
93
81
  /* @conditional-compile-remove(reaction) */
94
82
  localParticipantReactionState,
95
83
  /* @conditional-compile-remove(spotlight) */
@@ -102,7 +90,6 @@ capabilities) => {
102
90
  /* @conditional-compile-remove(hide-attendee-name) */
103
91
  role),
104
92
  dominantSpeakers: dominantSpeakerIds,
105
- /* @conditional-compile-remove(optimal-video-count) */
106
93
  maxRemoteVideoStreams: optimalVideoCount,
107
94
  /* @conditional-compile-remove(spotlight) */
108
95
  spotlightedParticipants: spotlightedParticipantIds,
@@ -1 +1 @@
1
- {"version":3,"file":"videoGallerySelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/videoGallerySelector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { CallClientState, RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { VideoGalleryRemoteParticipant, VideoGalleryLocalParticipant } from '@internal/react-components';\nimport { createSelector } from 'reselect';\nimport {\n CallingBaseSelectorProps,\n getDisplayName,\n getDominantSpeakers,\n getIdentifier,\n getIsMuted,\n getIsScreenSharingOn,\n getLocalVideoStreams,\n getScreenShareRemoteParticipant\n} from './baseSelectors';\n/* @conditional-compile-remove(rooms) */\nimport { getRole } from './baseSelectors';\n/* @conditional-compile-remove(hide-attendee-name) */\nimport { isHideAttendeeNamesEnabled } from './baseSelectors';\n/* @conditional-compile-remove(optimal-video-count) */\nimport { getOptimalVideoCount } from './baseSelectors';\nimport { _updateUserDisplayNames } from './utils/callUtils';\nimport { checkIsSpeaking } from './utils/SelectorUtils';\nimport {\n _videoGalleryRemoteParticipantsMemo,\n _dominantSpeakersWithFlatId,\n convertRemoteParticipantToVideoGalleryRemoteParticipant,\n memoizeLocalParticipant\n} from './utils/videoGalleryUtils';\n/* @conditional-compile-remove(spotlight) */\nimport { memoizeSpotlightedParticipantIds } from './utils/videoGalleryUtils';\n/* @conditional-compile-remove(raise-hand) */\nimport { getLocalParticipantRaisedHand } from './baseSelectors';\n/* @conditional-compile-remove(reaction) */\nimport { getLocalParticipantReactionState } from './baseSelectors';\n/* @conditional-compile-remove(reaction) */\nimport { memoizedConvertToVideoTileReaction } from './utils/participantListSelectorUtils';\nimport { getRemoteParticipantsExcludingConsumers } from './getRemoteParticipantsExcludingConsumers';\n/* @conditional-compile-remove(spotlight) */\nimport { getSpotlightCallFeature, getCapabilities } from './baseSelectors';\n\n/**\n * Selector type for {@link VideoGallery} component.\n *\n * @public\n */\nexport type VideoGallerySelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n screenShareParticipant?: VideoGalleryRemoteParticipant;\n localParticipant: VideoGalleryLocalParticipant;\n remoteParticipants: VideoGalleryRemoteParticipant[];\n dominantSpeakers?: string[];\n /* @conditional-compile-remove(optimal-video-count) */\n optimalVideoCount?: number;\n /* @conditional-compile-remove(spotlight) */\n spotlightedParticipants?: string[];\n /* @conditional-compile-remove(spotlight) */\n maxParticipantsToSpotlight?: number;\n};\n\n/**\n * Provides data attributes to {@link VideoGallery} component.\n * @public\n */\nexport const videoGallerySelector: VideoGallerySelector = createSelector(\n [\n getScreenShareRemoteParticipant,\n getRemoteParticipantsExcludingConsumers,\n getLocalVideoStreams,\n getIsMuted,\n getIsScreenSharingOn,\n getDisplayName,\n getIdentifier,\n getDominantSpeakers,\n /* @conditional-compile-remove(optimal-video-count) */\n getOptimalVideoCount,\n /* @conditional-compile-remove(rooms) */\n getRole,\n /* @conditional-compile-remove(raise-hand) */\n getLocalParticipantRaisedHand,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(reaction) */\n getLocalParticipantReactionState,\n /* @conditional-compile-remove(spotlight) */\n getSpotlightCallFeature,\n /* @conditional-compile-remove(spotlight) */\n getCapabilities\n ],\n (\n screenShareRemoteParticipantId,\n remoteParticipants,\n localVideoStreams,\n isMuted,\n isScreenSharingOn,\n displayName: string | undefined,\n identifier: string,\n dominantSpeakers,\n /* @conditional-compile-remove(optimal-video-count) */\n optimalVideoCount,\n /* @conditional-compile-remove(rooms) */\n role,\n /* @conditional-compile-remove(raise-hand) */\n raisedHand,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(reaction) */\n localParticipantReaction,\n /* @conditional-compile-remove(spotlight) */\n spotlightCallFeature,\n /* @conditional-compile-remove(spotlight) */\n capabilities\n ) => {\n const screenShareRemoteParticipant =\n screenShareRemoteParticipantId && remoteParticipants\n ? remoteParticipants[screenShareRemoteParticipantId]\n : undefined;\n const localVideoStream = localVideoStreams?.find((i) => i.mediaStreamType === 'Video');\n\n const dominantSpeakerIds = _dominantSpeakersWithFlatId(dominantSpeakers);\n const dominantSpeakersMap: Record<string, number> = {};\n dominantSpeakerIds?.forEach((speaker, idx) => (dominantSpeakersMap[speaker] = idx));\n const noRemoteParticipants: RemoteParticipantState[] = [];\n /* @conditional-compile-remove(reaction) */\n const localParticipantReactionState = memoizedConvertToVideoTileReaction(localParticipantReaction);\n /* @conditional-compile-remove(spotlight) */\n const spotlightedParticipantIds = memoizeSpotlightedParticipantIds(spotlightCallFeature?.spotlightedParticipants);\n\n return {\n screenShareParticipant: screenShareRemoteParticipant\n ? convertRemoteParticipantToVideoGalleryRemoteParticipant(\n toFlatCommunicationIdentifier(screenShareRemoteParticipant.identifier),\n screenShareRemoteParticipant.isMuted,\n checkIsSpeaking(screenShareRemoteParticipant),\n screenShareRemoteParticipant.videoStreams,\n screenShareRemoteParticipant.state,\n screenShareRemoteParticipant.displayName,\n /* @conditional-compile-remove(raise-hand) */\n screenShareRemoteParticipant.raisedHand,\n /* @conditional-compile-remove(spotlight) */\n screenShareRemoteParticipant.spotlight\n )\n : undefined,\n localParticipant: memoizeLocalParticipant(\n identifier,\n displayName,\n isMuted,\n isScreenSharingOn,\n localVideoStream,\n /* @conditional-compile-remove(rooms) */\n role,\n /* @conditional-compile-remove(raise-hand) */\n raisedHand,\n /* @conditional-compile-remove(reaction) */\n localParticipantReactionState,\n /* @conditional-compile-remove(spotlight) */\n spotlightCallFeature?.localParticipantSpotlight,\n /* @conditional-compile-remove(spotlight) */\n capabilities\n ),\n remoteParticipants: _videoGalleryRemoteParticipantsMemo(\n updateUserDisplayNamesTrampoline(remoteParticipants ? Object.values(remoteParticipants) : noRemoteParticipants),\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(hide-attendee-name) */\n role\n ),\n dominantSpeakers: dominantSpeakerIds,\n /* @conditional-compile-remove(optimal-video-count) */\n maxRemoteVideoStreams: optimalVideoCount,\n /* @conditional-compile-remove(spotlight) */\n spotlightedParticipants: spotlightedParticipantIds,\n /* @conditional-compile-remove(spotlight) */\n maxParticipantsToSpotlight: spotlightCallFeature?.maxParticipantsToSpotlight\n };\n }\n);\n\nconst updateUserDisplayNamesTrampoline = (remoteParticipants: RemoteParticipantState[]): RemoteParticipantState[] => {\n /* @conditional-compile-remove(PSTN-calls) */\n return _updateUserDisplayNames(remoteParticipants);\n return remoteParticipants;\n};\n"]}
1
+ {"version":3,"file":"videoGallerySelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/videoGallerySelector.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { CallClientState, RemoteParticipantState } from '@internal/calling-stateful-client';\nimport { VideoGalleryRemoteParticipant, VideoGalleryLocalParticipant } from '@internal/react-components';\nimport { createSelector } from 'reselect';\nimport {\n CallingBaseSelectorProps,\n getDisplayName,\n getDominantSpeakers,\n getIdentifier,\n getIsMuted,\n getIsScreenSharingOn,\n getLocalVideoStreams,\n getScreenShareRemoteParticipant\n} from './baseSelectors';\n/* @conditional-compile-remove(rooms) */\nimport { getRole } from './baseSelectors';\n/* @conditional-compile-remove(hide-attendee-name) */\nimport { isHideAttendeeNamesEnabled } from './baseSelectors';\nimport { getOptimalVideoCount } from './baseSelectors';\nimport { _updateUserDisplayNames } from './utils/callUtils';\nimport { checkIsSpeaking } from './utils/SelectorUtils';\nimport {\n _videoGalleryRemoteParticipantsMemo,\n _dominantSpeakersWithFlatId,\n convertRemoteParticipantToVideoGalleryRemoteParticipant,\n memoizeLocalParticipant\n} from './utils/videoGalleryUtils';\n/* @conditional-compile-remove(spotlight) */\nimport { memoizeSpotlightedParticipantIds } from './utils/videoGalleryUtils';\nimport { getLocalParticipantRaisedHand } from './baseSelectors';\n/* @conditional-compile-remove(reaction) */\nimport { getLocalParticipantReactionState } from './baseSelectors';\n/* @conditional-compile-remove(reaction) */\nimport { memoizedConvertToVideoTileReaction } from './utils/participantListSelectorUtils';\nimport { getRemoteParticipantsExcludingConsumers } from './getRemoteParticipantsExcludingConsumers';\n/* @conditional-compile-remove(spotlight) */\nimport { getSpotlightCallFeature, getCapabilities } from './baseSelectors';\n\n/**\n * Selector type for {@link VideoGallery} component.\n *\n * @public\n */\nexport type VideoGallerySelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n screenShareParticipant?: VideoGalleryRemoteParticipant;\n localParticipant: VideoGalleryLocalParticipant;\n remoteParticipants: VideoGalleryRemoteParticipant[];\n dominantSpeakers?: string[];\n optimalVideoCount?: number;\n /* @conditional-compile-remove(spotlight) */\n spotlightedParticipants?: string[];\n /* @conditional-compile-remove(spotlight) */\n maxParticipantsToSpotlight?: number;\n};\n\n/**\n * Provides data attributes to {@link VideoGallery} component.\n * @public\n */\nexport const videoGallerySelector: VideoGallerySelector = createSelector(\n [\n getScreenShareRemoteParticipant,\n getRemoteParticipantsExcludingConsumers,\n getLocalVideoStreams,\n getIsMuted,\n getIsScreenSharingOn,\n getDisplayName,\n getIdentifier,\n getDominantSpeakers,\n getOptimalVideoCount,\n /* @conditional-compile-remove(rooms) */\n getRole,\n getLocalParticipantRaisedHand,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(reaction) */\n getLocalParticipantReactionState,\n /* @conditional-compile-remove(spotlight) */\n getSpotlightCallFeature,\n /* @conditional-compile-remove(spotlight) */\n getCapabilities\n ],\n (\n screenShareRemoteParticipantId,\n remoteParticipants,\n localVideoStreams,\n isMuted,\n isScreenSharingOn,\n displayName: string | undefined,\n identifier: string,\n dominantSpeakers,\n optimalVideoCount,\n /* @conditional-compile-remove(rooms) */\n role,\n raisedHand,\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(reaction) */\n localParticipantReaction,\n /* @conditional-compile-remove(spotlight) */\n spotlightCallFeature,\n /* @conditional-compile-remove(spotlight) */\n capabilities\n ) => {\n const screenShareRemoteParticipant =\n screenShareRemoteParticipantId && remoteParticipants\n ? remoteParticipants[screenShareRemoteParticipantId]\n : undefined;\n const localVideoStream = localVideoStreams?.find((i) => i.mediaStreamType === 'Video');\n\n const dominantSpeakerIds = _dominantSpeakersWithFlatId(dominantSpeakers);\n const dominantSpeakersMap: Record<string, number> = {};\n dominantSpeakerIds?.forEach((speaker, idx) => (dominantSpeakersMap[speaker] = idx));\n const noRemoteParticipants: RemoteParticipantState[] = [];\n /* @conditional-compile-remove(reaction) */\n const localParticipantReactionState = memoizedConvertToVideoTileReaction(localParticipantReaction);\n /* @conditional-compile-remove(spotlight) */\n const spotlightedParticipantIds = memoizeSpotlightedParticipantIds(spotlightCallFeature?.spotlightedParticipants);\n\n return {\n screenShareParticipant: screenShareRemoteParticipant\n ? convertRemoteParticipantToVideoGalleryRemoteParticipant(\n toFlatCommunicationIdentifier(screenShareRemoteParticipant.identifier),\n screenShareRemoteParticipant.isMuted,\n checkIsSpeaking(screenShareRemoteParticipant),\n screenShareRemoteParticipant.videoStreams,\n screenShareRemoteParticipant.state,\n screenShareRemoteParticipant.displayName,\n screenShareRemoteParticipant.raisedHand,\n /* @conditional-compile-remove(spotlight) */\n screenShareRemoteParticipant.spotlight\n )\n : undefined,\n localParticipant: memoizeLocalParticipant(\n identifier,\n displayName,\n isMuted,\n isScreenSharingOn,\n localVideoStream,\n /* @conditional-compile-remove(rooms) */\n role,\n raisedHand,\n /* @conditional-compile-remove(reaction) */\n localParticipantReactionState,\n /* @conditional-compile-remove(spotlight) */\n spotlightCallFeature?.localParticipantSpotlight,\n /* @conditional-compile-remove(spotlight) */\n capabilities\n ),\n remoteParticipants: _videoGalleryRemoteParticipantsMemo(\n updateUserDisplayNamesTrampoline(remoteParticipants ? Object.values(remoteParticipants) : noRemoteParticipants),\n /* @conditional-compile-remove(hide-attendee-name) */\n isHideAttendeeNamesEnabled,\n /* @conditional-compile-remove(hide-attendee-name) */\n role\n ),\n dominantSpeakers: dominantSpeakerIds,\n maxRemoteVideoStreams: optimalVideoCount,\n /* @conditional-compile-remove(spotlight) */\n spotlightedParticipants: spotlightedParticipantIds,\n /* @conditional-compile-remove(spotlight) */\n maxParticipantsToSpotlight: spotlightCallFeature?.maxParticipantsToSpotlight\n };\n }\n);\n\nconst updateUserDisplayNamesTrampoline = (remoteParticipants: RemoteParticipantState[]): RemoteParticipantState[] => {\n /* @conditional-compile-remove(PSTN-calls) */\n return _updateUserDisplayNames(remoteParticipants);\n return remoteParticipants;\n};\n"]}
@@ -8,6 +8,7 @@ import { ParticipantRole } from '@azure/communication-calling';
8
8
  import { CommunicationIdentifierKind } from '@azure/communication-common';
9
9
  import { ReactionMessage } from '@azure/communication-calling';
10
10
  import { SpotlightedParticipant } from '@azure/communication-calling';
11
+ import { LocalRecordingInfo, RecordingInfo } from '@azure/communication-calling';
11
12
  /**
12
13
  * State only version of {@link @azure/communication-calling#CallAgent} except calls is moved to be a child directly of
13
14
  * {@link CallClientState} and not included here. The reason to have CallAgent's state proxied is to provide access to
@@ -157,6 +158,36 @@ export interface RecordingCallFeatureState {
157
158
  * Proxy of {@link @azure/communication-calling#RecordingCallFeature.isRecordingActive}.
158
159
  */
159
160
  isRecordingActive: boolean;
161
+ /**
162
+ * Contains list of information of started recordings
163
+ * Proxy of {@link @azure/communication-calling#RecordingCallFeature.recordings}.
164
+ */
165
+ activeRecordings?: RecordingInfo[];
166
+ /**
167
+ * Contains list of information of stopped recordings
168
+ */
169
+ lastStoppedRecording?: RecordingInfo[];
170
+ }
171
+ /**
172
+ * State only version of {@link @azure/communication-calling#LocalRecordingCallFeature}. {@link StatefulCallClient} will
173
+ * automatically listen for local recording state of the call and update the state exposed by {@link StatefulCallClient} accordingly.
174
+ *
175
+ * @beta
176
+ */
177
+ export interface LocalRecordingCallFeatureState {
178
+ /**
179
+ * Proxy of {@link @azure/communication-calling#LocalRecordingCallFeature.isRecordingActive}.
180
+ */
181
+ isLocalRecordingActive: boolean;
182
+ /**
183
+ * Contains list of information of started recordings
184
+ * Proxy of {@link @azure/communication-calling#LocalRecordingCallFeature.recordings}.
185
+ */
186
+ activeLocalRecordings?: LocalRecordingInfo[];
187
+ /**
188
+ * Contains list of information of stopped recordings
189
+ */
190
+ lastStoppedLocalRecording?: LocalRecordingInfo[];
160
191
  }
161
192
  /**
162
193
  * State only version of {@link @azure/communication-calling#RaiseHandCallFeature}. {@link StatefulCallClient} will
@@ -458,6 +489,10 @@ export interface CallState {
458
489
  * Proxy of {@link @azure/communication-calling#RecordingCallFeature}.
459
490
  */
460
491
  recording: RecordingCallFeatureState;
492
+ /**
493
+ * Proxy of {@link @azure/communication-calling#LocalRecordingCallFeature}.
494
+ */
495
+ localRecording: LocalRecordingCallFeatureState;
461
496
  /**
462
497
  * Proxy of {@link @azure/communication-calling#PPTLiveCallFeature}.
463
498
  *