@azure/communication-react 1.7.0-alpha-202307270013 → 1.7.0-alpha-202307300015
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.
- package/dist/communication-react.d.ts +7 -22
- package/dist/dist-cjs/communication-react/index.js +206 -241
- package/dist/dist-cjs/communication-react/index.js.map +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
- package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +6 -2
- package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +19 -6
- package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +19 -5
- package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts +2 -3
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +10 -8
- package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts +2 -1
- package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +5 -2
- package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
- package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js +11 -3
- package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
- package/dist/dist-esm/communication-react/src/index.d.ts +0 -1
- package/dist/dist-esm/communication-react/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantList.js +1 -5
- package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/VideoGallery.js +7 -10
- package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
- package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/index.d.ts +0 -2
- package/dist/dist-esm/react-components/src/index.js +0 -2
- package/dist/dist-esm/react-components/src/index.js.map +1 -1
- package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts +0 -3
- package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +5 -20
- package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +1 -9
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +10 -18
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +4 -7
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +9 -11
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts +2 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +9 -19
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js +8 -10
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +32 -18
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +10 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +13 -10
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +10 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +10 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +7 -10
- package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +5 -5
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +2 -0
- package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +3 -13
- package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js +11 -11
- package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js +4 -5
- package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
- package/package.json +8 -8
- package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.d.ts +0 -61
- package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js +0 -74
- package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js.map +0 -1
- package/dist/dist-esm/react-components/src/permissions/index.d.ts +0 -2
- package/dist/dist-esm/react-components/src/permissions/index.js +0 -4
- package/dist/dist-esm/react-components/src/permissions/index.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"telemetryVersion.js","sourceRoot":"","sources":["../../../../../acs-ui-common/src/telemetryVersion.js"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,MAAM,CAAC,OAAO,GAAG,0BAA0B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// GENERATED FILE. DO NOT EDIT MANUALLY.\n\nmodule.exports = '1.7.0-alpha-
|
1
|
+
{"version":3,"file":"telemetryVersion.js","sourceRoot":"","sources":["../../../../../acs-ui-common/src/telemetryVersion.js"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAElC,wCAAwC;AAExC,MAAM,CAAC,OAAO,GAAG,0BAA0B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// GENERATED FILE. DO NOT EDIT MANUALLY.\n\nmodule.exports = '1.7.0-alpha-202307300015';\n"]}
|
@@ -3,11 +3,15 @@ import { toFlatCommunicationIdentifier } from "../../acs-ui-common/src";
|
|
3
3
|
* @private
|
4
4
|
*/
|
5
5
|
export const getDeviceManager = (state) => state.deviceManager;
|
6
|
-
/* @conditional-compile-remove(rooms) */
|
7
6
|
/**
|
8
7
|
* @private
|
9
8
|
*/
|
10
|
-
export const getRole = (state, props) => {
|
9
|
+
export const getRole = (state, props) => {
|
10
|
+
var _a;
|
11
|
+
/* @conditional-compile-remove(rooms) */
|
12
|
+
return (_a = state.calls[props.callId]) === null || _a === void 0 ? void 0 : _a.role;
|
13
|
+
return 'Unknown';
|
14
|
+
};
|
11
15
|
/**
|
12
16
|
* @private
|
13
17
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"baseSelectors.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/baseSelectors.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { DominantSpeakersInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { EnvironmentInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(rooms) */\nimport { ParticipantRole } from '@azure/communication-calling';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport {\n CallClientState,\n DeviceManagerState,\n RemoteParticipantState,\n LocalVideoStreamState,\n CallErrors,\n DiagnosticsCallFeatureState\n} from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionsInfo } from '@internal/calling-stateful-client';\n\n/**\n * Common props used to reference calling declarative client state.\n *\n * @public\n */\nexport type CallingBaseSelectorProps = {\n callId: string;\n};\n\n/**\n * @private\n */\nexport const getDeviceManager = (state: CallClientState): DeviceManagerState => state.deviceManager;\n\n/* @conditional-compile-remove(rooms) */\n/**\n * @private\n */\nexport const getRole = (state: CallClientState, props: CallingBaseSelectorProps): ParticipantRole | undefined =>\n state.calls[props.callId]?.role;\n\n/**\n * @private\n */\nexport const getCallExists = (state: CallClientState, props: CallingBaseSelectorProps): boolean =>\n !!state.calls[props.callId];\n\n/**\n * @private\n */\nexport const getDominantSpeakers = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): undefined | DominantSpeakersInfo => state.calls[props.callId]?.dominantSpeakers;\n\n/**\n * @private\n */\nexport const getRemoteParticipants = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n):\n | {\n [keys: string]: RemoteParticipantState;\n }\n | undefined => {\n return state.calls[props.callId]?.remoteParticipants;\n};\n\n/**\n * @private\n */\nexport const getIsScreenSharingOn = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined =>\n state.calls[props.callId]?.isScreenSharingOn;\n\n/**\n * @private\n */\nexport const getIsMuted = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined =>\n state.calls[props.callId]?.isMuted;\n\n/* @conditional-compile-remove(optimal-video-count) */\n/**\n * @private\n */\nexport const getOptimalVideoCount = (state: CallClientState, props: CallingBaseSelectorProps): number | undefined =>\n state.calls[props.callId]?.optimalVideoCount.maxRemoteVideoStreams;\n\n/**\n * @private\n */\nexport const getLocalVideoStreams = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): LocalVideoStreamState[] | undefined => state.calls[props.callId]?.localVideoStreams;\n\n/**\n * @private\n */\nexport const getScreenShareRemoteParticipant = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string | undefined => state.calls[props.callId]?.screenShareRemoteParticipant;\n\n/**\n * @private\n */\nexport const getDisplayName = (state: CallClientState): string | undefined => state.callAgent?.displayName;\n\n/**\n * @private\n */\nexport const getIdentifier = (state: CallClientState): string => toFlatCommunicationIdentifier(state.userId);\n\n/**\n * @private\n */\nexport const getLatestErrors = (state: CallClientState): CallErrors => state.latestErrors;\n\n/**\n * @private\n */\nexport const getDiagnostics = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): DiagnosticsCallFeatureState | undefined => state.calls[props.callId]?.diagnostics;\n\n/* @conditional-compile-remove(PSTN-calls) */\n/**\n * @private\n */\nexport const getCallState = (state: CallClientState, props: CallingBaseSelectorProps): string =>\n state.calls[props.callId]?.state;\n\n/**\n * @private\n */\nexport const getEnvironmentInfo = (\n state: CallClientState\n): undefined | /* @conditional-compile-remove(unsupported-browser) */ EnvironmentInfo => {\n /* @conditional-compile-remove(unsupported-browser) */\n return state.environmentInfo;\n return undefined;\n};\n\n/** @private */\nexport const getParticipantCount = (state: CallClientState, props: CallingBaseSelectorProps): number | undefined => {\n /* @conditional-compile-remove(total-participant-count) */\n return state.calls[props.callId]?.totalParticipantCount;\n return undefined;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCaptions = (state: CallClientState, props: CallingBaseSelectorProps): CaptionsInfo[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.captions;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCaptionsStatus = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined => {\n return state.calls[props.callId]?.captionsFeature.isCaptionsFeatureActive;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getStartCaptionsInProgress = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): boolean | undefined => {\n return state.calls[props.callId]?.captionsFeature.startCaptionsInProgress;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCurrentCaptionLanguage = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string | undefined => {\n return state.calls[props.callId]?.captionsFeature.currentCaptionLanguage;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCurrentSpokenLanguage = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string | undefined => {\n return state.calls[props.callId]?.captionsFeature.currentSpokenLanguage;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getSupportedCaptionLanguages = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.supportedCaptionLanguages;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getSupportedSpokenLanguages = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.supportedSpokenLanguages;\n};\n\"../../acs-ui-common/src\"\"../../calling-stateful-client/src\""]}
|
1
|
+
{"version":3,"file":"baseSelectors.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/baseSelectors.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,6BAA6B,EAAE,gCAAgC;AAqBxE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAsB,EAAsB,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;AAEpG;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAA+B,EAAE;;IAC9G,wCAAwC;IACxC,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,IAAI,CAAC;IACvC,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAW,EAAE,CAChG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAAsB,EACtB,KAA+B,EACG,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,gBAAgB,CAAA,EAAA,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAsB,EACtB,KAA+B,EAKnB,EAAE;;IACd,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,kBAAkB,CAAC;AACvD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAuB,EAAE,WACnH,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,iBAAiB,CAAA,EAAA,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAuB,EAAE,WACzG,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,OAAO,CAAA,EAAA,CAAC;AAErC,sDAAsD;AACtD;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAsB,EAAE,WAClH,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,iBAAiB,CAAC,qBAAqB,CAAA,EAAA,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAAsB,EACtB,KAA+B,EACM,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,iBAAiB,CAAA,EAAA,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,KAAsB,EACtB,KAA+B,EACX,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,4BAA4B,CAAA,EAAA,CAAC;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAsB,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,WAAW,CAAA,EAAA,CAAC;AAE3G;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE7G;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAc,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;AAE1F;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAsB,EACtB,KAA+B,EACU,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,WAAW,CAAA,EAAA,CAAC;AAErF,6CAA6C;AAC7C;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAU,EAAE,WAC9F,OAAA,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,KAAK,CAAA,EAAA,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAsB,EAC8D,EAAE;IACtF,sDAAsD;IACtD,OAAO,KAAK,CAAC,eAAe,CAAC;IAC7B,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAsB,EAAE;;IACjH,0DAA0D;IAC1D,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,qBAAqB,CAAC;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,iDAAiD;AACjD,eAAe;AACf,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAA8B,EAAE;;IACjH,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,QAAQ,CAAC;AAC7D,CAAC,CAAC;AAEF,iDAAiD;AACjD,eAAe;AACf,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAsB,EAAE,KAA+B,EAAuB,EAAE;;IAChH,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,uBAAuB,CAAC;AAC5E,CAAC,CAAC;AAEF,iDAAiD;AACjD,eAAe;AACf,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,KAAsB,EACtB,KAA+B,EACV,EAAE;;IACvB,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,uBAAuB,CAAC;AAC5E,CAAC,CAAC;AAEF,iDAAiD;AACjD,eAAe;AACf,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,KAAsB,EACtB,KAA+B,EACX,EAAE;;IACtB,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,sBAAsB,CAAC;AAC3E,CAAC,CAAC;AAEF,iDAAiD;AACjD,eAAe;AACf,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,KAAsB,EACtB,KAA+B,EACX,EAAE;;IACtB,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,qBAAqB,CAAC;AAC1E,CAAC,CAAC;AAEF,iDAAiD;AACjD,eAAe;AACf,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,KAAsB,EACtB,KAA+B,EACT,EAAE;;IACxB,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,yBAAyB,CAAC;AAC9E,CAAC,CAAC;AAEF,iDAAiD;AACjD,eAAe;AACf,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,KAAsB,EACtB,KAA+B,EACT,EAAE;;IACxB,OAAO,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,eAAe,CAAC,wBAAwB,CAAC;AAC7E,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { DominantSpeakersInfo } from '@azure/communication-calling';\n/* @conditional-compile-remove(unsupported-browser) */\nimport { EnvironmentInfo } from '@azure/communication-calling';\nimport { ParticipantRole } from '@azure/communication-calling';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport {\n CallClientState,\n DeviceManagerState,\n RemoteParticipantState,\n LocalVideoStreamState,\n CallErrors,\n DiagnosticsCallFeatureState\n} from '@internal/calling-stateful-client';\n/* @conditional-compile-remove(close-captions) */\nimport { CaptionsInfo } from '@internal/calling-stateful-client';\n\n/**\n * Common props used to reference calling declarative client state.\n *\n * @public\n */\nexport type CallingBaseSelectorProps = {\n callId: string;\n};\n\n/**\n * @private\n */\nexport const getDeviceManager = (state: CallClientState): DeviceManagerState => state.deviceManager;\n\n/**\n * @private\n */\nexport const getRole = (state: CallClientState, props: CallingBaseSelectorProps): ParticipantRole | undefined => {\n /* @conditional-compile-remove(rooms) */\n return state.calls[props.callId]?.role;\n return 'Unknown';\n};\n\n/**\n * @private\n */\nexport const getCallExists = (state: CallClientState, props: CallingBaseSelectorProps): boolean =>\n !!state.calls[props.callId];\n\n/**\n * @private\n */\nexport const getDominantSpeakers = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): undefined | DominantSpeakersInfo => state.calls[props.callId]?.dominantSpeakers;\n\n/**\n * @private\n */\nexport const getRemoteParticipants = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n):\n | {\n [keys: string]: RemoteParticipantState;\n }\n | undefined => {\n return state.calls[props.callId]?.remoteParticipants;\n};\n\n/**\n * @private\n */\nexport const getIsScreenSharingOn = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined =>\n state.calls[props.callId]?.isScreenSharingOn;\n\n/**\n * @private\n */\nexport const getIsMuted = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined =>\n state.calls[props.callId]?.isMuted;\n\n/* @conditional-compile-remove(optimal-video-count) */\n/**\n * @private\n */\nexport const getOptimalVideoCount = (state: CallClientState, props: CallingBaseSelectorProps): number | undefined =>\n state.calls[props.callId]?.optimalVideoCount.maxRemoteVideoStreams;\n\n/**\n * @private\n */\nexport const getLocalVideoStreams = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): LocalVideoStreamState[] | undefined => state.calls[props.callId]?.localVideoStreams;\n\n/**\n * @private\n */\nexport const getScreenShareRemoteParticipant = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string | undefined => state.calls[props.callId]?.screenShareRemoteParticipant;\n\n/**\n * @private\n */\nexport const getDisplayName = (state: CallClientState): string | undefined => state.callAgent?.displayName;\n\n/**\n * @private\n */\nexport const getIdentifier = (state: CallClientState): string => toFlatCommunicationIdentifier(state.userId);\n\n/**\n * @private\n */\nexport const getLatestErrors = (state: CallClientState): CallErrors => state.latestErrors;\n\n/**\n * @private\n */\nexport const getDiagnostics = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): DiagnosticsCallFeatureState | undefined => state.calls[props.callId]?.diagnostics;\n\n/* @conditional-compile-remove(PSTN-calls) */\n/**\n * @private\n */\nexport const getCallState = (state: CallClientState, props: CallingBaseSelectorProps): string =>\n state.calls[props.callId]?.state;\n\n/**\n * @private\n */\nexport const getEnvironmentInfo = (\n state: CallClientState\n): undefined | /* @conditional-compile-remove(unsupported-browser) */ EnvironmentInfo => {\n /* @conditional-compile-remove(unsupported-browser) */\n return state.environmentInfo;\n return undefined;\n};\n\n/** @private */\nexport const getParticipantCount = (state: CallClientState, props: CallingBaseSelectorProps): number | undefined => {\n /* @conditional-compile-remove(total-participant-count) */\n return state.calls[props.callId]?.totalParticipantCount;\n return undefined;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCaptions = (state: CallClientState, props: CallingBaseSelectorProps): CaptionsInfo[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.captions;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCaptionsStatus = (state: CallClientState, props: CallingBaseSelectorProps): boolean | undefined => {\n return state.calls[props.callId]?.captionsFeature.isCaptionsFeatureActive;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getStartCaptionsInProgress = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): boolean | undefined => {\n return state.calls[props.callId]?.captionsFeature.startCaptionsInProgress;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCurrentCaptionLanguage = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string | undefined => {\n return state.calls[props.callId]?.captionsFeature.currentCaptionLanguage;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getCurrentSpokenLanguage = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string | undefined => {\n return state.calls[props.callId]?.captionsFeature.currentSpokenLanguage;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getSupportedCaptionLanguages = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.supportedCaptionLanguages;\n};\n\n/* @conditional-compile-remove(close-captions) */\n/** @private */\nexport const getSupportedSpokenLanguages = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n): string[] | undefined => {\n return state.calls[props.callId]?.captionsFeature.supportedSpokenLanguages;\n};\n\"../../acs-ui-common/src\"\"../../calling-stateful-client/src\""]}
|
@@ -2,6 +2,8 @@
|
|
2
2
|
// Licensed under the MIT license.
|
3
3
|
import * as reselect from 'reselect';
|
4
4
|
import { getCallExists, getDeviceManager, getIsMuted, getIsScreenSharingOn, getLocalVideoStreams } from './baseSelectors';
|
5
|
+
/* @conditional-compile-remove(rooms) */
|
6
|
+
import { getRole } from './baseSelectors';
|
5
7
|
/* @conditional-compile-remove(PSTN-calls) */
|
6
8
|
import { getCallState } from './baseSelectors';
|
7
9
|
import { _isPreviewOn } from './utils/callUtils';
|
@@ -10,10 +12,10 @@ import { _isPreviewOn } from './utils/callUtils';
|
|
10
12
|
*
|
11
13
|
* @public
|
12
14
|
*/
|
13
|
-
export const microphoneButtonSelector = reselect.createSelector([getCallExists, getIsMuted, getDeviceManager], (callExists, isMuted, deviceManager) => {
|
15
|
+
export const microphoneButtonSelector = reselect.createSelector([getCallExists, getIsMuted, getDeviceManager, /* @conditional-compile-remove(rooms) */ getRole], (callExists, isMuted, deviceManager, /* @conditional-compile-remove(rooms) */ role) => {
|
14
16
|
const permission = deviceManager.deviceAccess ? deviceManager.deviceAccess.audio : true;
|
15
17
|
return {
|
16
|
-
disabled: !callExists || !permission,
|
18
|
+
disabled: !callExists || !permission || /* @conditional-compile-remove(rooms) */ role === 'Consumer',
|
17
19
|
checked: callExists ? !isMuted : false,
|
18
20
|
microphones: deviceManager.microphones,
|
19
21
|
speakers: deviceManager.speakers,
|
@@ -26,12 +28,15 @@ export const microphoneButtonSelector = reselect.createSelector([getCallExists,
|
|
26
28
|
*
|
27
29
|
* @public
|
28
30
|
*/
|
29
|
-
export const cameraButtonSelector = reselect.createSelector([getLocalVideoStreams, getDeviceManager], (localVideoStreams, deviceManager) => {
|
31
|
+
export const cameraButtonSelector = reselect.createSelector([getLocalVideoStreams, getDeviceManager, /* @conditional-compile-remove(rooms) */ getRole], (localVideoStreams, deviceManager, /* @conditional-compile-remove(rooms) */ role) => {
|
30
32
|
const previewOn = _isPreviewOn(deviceManager);
|
31
33
|
const localVideoFromCall = localVideoStreams === null || localVideoStreams === void 0 ? void 0 : localVideoStreams.find((stream) => stream.mediaStreamType === 'Video');
|
32
34
|
const permission = deviceManager.deviceAccess ? deviceManager.deviceAccess.video : true;
|
33
35
|
return {
|
34
|
-
disabled: !deviceManager.selectedCamera ||
|
36
|
+
disabled: !deviceManager.selectedCamera ||
|
37
|
+
!permission ||
|
38
|
+
!deviceManager.cameras.length ||
|
39
|
+
/* @conditional-compile-remove(rooms) */ role === 'Consumer',
|
35
40
|
checked: localVideoStreams !== undefined && localVideoStreams.length > 0 ? !!localVideoFromCall : previewOn,
|
36
41
|
cameras: deviceManager.cameras,
|
37
42
|
selectedCamera: deviceManager.selectedCamera
|
@@ -42,12 +47,20 @@ export const cameraButtonSelector = reselect.createSelector([getLocalVideoStream
|
|
42
47
|
*
|
43
48
|
* @public
|
44
49
|
*/
|
45
|
-
export const screenShareButtonSelector = reselect.createSelector([
|
50
|
+
export const screenShareButtonSelector = reselect.createSelector([
|
51
|
+
getIsScreenSharingOn,
|
52
|
+
/* @conditional-compile-remove(PSTN-calls) */ getCallState,
|
53
|
+
/* @conditional-compile-remove(rooms) */ getRole
|
54
|
+
], (isScreenSharingOn,
|
55
|
+
/* @conditional-compile-remove(PSTN-calls) */ callState,
|
56
|
+
/* @conditional-compile-remove(rooms) */ role) => {
|
46
57
|
var _a;
|
47
58
|
return {
|
48
59
|
checked: isScreenSharingOn,
|
49
60
|
/* @conditional-compile-remove(PSTN-calls) */
|
50
|
-
disabled: callState === 'InLobby' ? true : (_a = callState === 'Connecting') !== null && _a !== void 0 ? _a : false
|
61
|
+
disabled: (callState === 'InLobby' ? true : (_a = callState === 'Connecting') !== null && _a !== void 0 ? _a : false) ||
|
62
|
+
/* @conditional-compile-remove(rooms) */ role === 'Consumer' ||
|
63
|
+
/* @conditional-compile-remove(rooms) */ role === 'Attendee'
|
51
64
|
};
|
52
65
|
});
|
53
66
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"callControlSelectors.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/callControlSelectors.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAEL,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AACzB,6CAA6C;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAmBjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAA6B,QAAQ,CAAC,cAAc,CACvF,CAAC,aAAa,EAAE,UAAU,EAAE,gBAAgB,CAAC,
|
1
|
+
{"version":3,"file":"callControlSelectors.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/callControlSelectors.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AudioDeviceInfo, VideoDeviceInfo } from '@azure/communication-calling';\nimport { CallClientState } from '@internal/calling-stateful-client';\nimport * as reselect from 'reselect';\nimport {\n CallingBaseSelectorProps,\n getCallExists,\n getDeviceManager,\n getIsMuted,\n getIsScreenSharingOn,\n getLocalVideoStreams\n} from './baseSelectors';\n/* @conditional-compile-remove(rooms) */\nimport { getRole } from './baseSelectors';\n/* @conditional-compile-remove(PSTN-calls) */\nimport { getCallState } from './baseSelectors';\nimport { _isPreviewOn } from './utils/callUtils';\n\n/**\n * Selector type for {@link MicrophoneButton} component.\n *\n * @public\n */\nexport type MicrophoneButtonSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n disabled: boolean;\n checked: boolean;\n microphones: AudioDeviceInfo[];\n speakers: AudioDeviceInfo[];\n selectedMicrophone?: AudioDeviceInfo;\n selectedSpeaker?: AudioDeviceInfo;\n};\n\n/**\n * Selector for {@link MicrophoneButton} component.\n *\n * @public\n */\nexport const microphoneButtonSelector: MicrophoneButtonSelector = reselect.createSelector(\n [getCallExists, getIsMuted, getDeviceManager, /* @conditional-compile-remove(rooms) */ getRole],\n (callExists, isMuted, deviceManager, /* @conditional-compile-remove(rooms) */ role) => {\n const permission = deviceManager.deviceAccess ? deviceManager.deviceAccess.audio : true;\n return {\n disabled: !callExists || !permission || /* @conditional-compile-remove(rooms) */ role === 'Consumer',\n checked: callExists ? !isMuted : false,\n microphones: deviceManager.microphones,\n speakers: deviceManager.speakers,\n selectedMicrophone: deviceManager.selectedMicrophone,\n selectedSpeaker: deviceManager.selectedSpeaker\n };\n }\n);\n\n/**\n * Selector type for {@link CameraButton} component.\n *\n * @public\n */\nexport type CameraButtonSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n disabled: boolean;\n checked: boolean;\n cameras: VideoDeviceInfo[];\n selectedCamera?: VideoDeviceInfo;\n};\n\n/**\n * Selector for {@link CameraButton} component.\n *\n * @public\n */\nexport const cameraButtonSelector: CameraButtonSelector = reselect.createSelector(\n [getLocalVideoStreams, getDeviceManager, /* @conditional-compile-remove(rooms) */ getRole],\n (localVideoStreams, deviceManager, /* @conditional-compile-remove(rooms) */ role) => {\n const previewOn = _isPreviewOn(deviceManager);\n const localVideoFromCall = localVideoStreams?.find((stream) => stream.mediaStreamType === 'Video');\n const permission = deviceManager.deviceAccess ? deviceManager.deviceAccess.video : true;\n\n return {\n disabled:\n !deviceManager.selectedCamera ||\n !permission ||\n !deviceManager.cameras.length ||\n /* @conditional-compile-remove(rooms) */ role === 'Consumer',\n checked: localVideoStreams !== undefined && localVideoStreams.length > 0 ? !!localVideoFromCall : previewOn,\n cameras: deviceManager.cameras,\n selectedCamera: deviceManager.selectedCamera\n };\n }\n);\n\n/**\n * Selector type for {@link ScreenShareButton} component.\n *\n * @public\n */\nexport type ScreenShareButtonSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n checked?: boolean;\n /* @conditional-compile-remove(PSTN-calls) */\n disabled?: boolean;\n};\n\n/**\n * Selector for {@link ScreenShareButton} component.\n *\n * @public\n */\nexport const screenShareButtonSelector: ScreenShareButtonSelector = reselect.createSelector(\n [\n getIsScreenSharingOn,\n /* @conditional-compile-remove(PSTN-calls) */ getCallState,\n /* @conditional-compile-remove(rooms) */ getRole\n ],\n (\n isScreenSharingOn,\n /* @conditional-compile-remove(PSTN-calls) */ callState,\n /* @conditional-compile-remove(rooms) */ role\n ) => {\n return {\n checked: isScreenSharingOn,\n /* @conditional-compile-remove(PSTN-calls) */\n disabled:\n (callState === 'InLobby' ? true : callState === 'Connecting' ?? false) ||\n /* @conditional-compile-remove(rooms) */ role === 'Consumer' ||\n /* @conditional-compile-remove(rooms) */ role === 'Attendee'\n };\n }\n);\n\n/**\n * Selector type for {@link DevicesButton} component.\n *\n * @public\n */\nexport type DevicesButtonSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n microphones: AudioDeviceInfo[];\n speakers: AudioDeviceInfo[];\n cameras: VideoDeviceInfo[];\n selectedMicrophone?: AudioDeviceInfo;\n selectedSpeaker?: AudioDeviceInfo;\n selectedCamera?: VideoDeviceInfo;\n};\n\n/**\n * Selector for {@link DevicesButton} component.\n *\n * @public\n */\nexport const devicesButtonSelector: DevicesButtonSelector = reselect.createSelector(\n [getDeviceManager],\n (deviceManager) => {\n return {\n microphones: removeBlankNameDevices(deviceManager.microphones),\n speakers: removeBlankNameDevices(deviceManager.speakers),\n cameras: removeBlankNameDevices(deviceManager.cameras),\n selectedMicrophone: deviceManager.selectedMicrophone,\n selectedSpeaker: deviceManager.selectedSpeaker,\n selectedCamera: deviceManager.selectedCamera\n };\n }\n);\n\nfunction removeBlankNameDevices<T extends { name: string }>(devices: T[]): T[] {\n return devices.filter((device) => device.name !== '');\n}\n\n/* @conditional-compile-remove(PSTN-calls) */\n/**\n * Selector type for the {@link HoldButton} component.\n * @public\n */\nexport type HoldButtonSelector = (\n state: CallClientState,\n props: CallingBaseSelectorProps\n) => {\n checked: boolean;\n};\n\n/* @conditional-compile-remove(PSTN-calls) */\n/**\n * Selector for the {@link HoldButton} component.\n * @public\n */\nexport const holdButtonSelector: HoldButtonSelector = reselect.createSelector([getCallState], (callState) => {\n return {\n checked: callState === 'LocalHold'\n };\n});\n\"../../calling-stateful-client/src\""]}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
// Licensed under the MIT license.
|
3
3
|
import { createSelector } from 'reselect';
|
4
4
|
import { getIdentifier, getDisplayName, getRemoteParticipants, getIsScreenSharingOn, getIsMuted } from './baseSelectors';
|
5
|
+
import { getRole } from './baseSelectors';
|
5
6
|
import { _isRingingPSTNParticipant, _updateUserDisplayNames } from './utils/callUtils';
|
6
7
|
import { memoizedConvertAllremoteParticipants } from './utils/participantListSelectorUtils';
|
7
8
|
/* @conditional-compile-remove(rooms) */
|
@@ -11,7 +12,7 @@ import { getParticipantCount } from './baseSelectors';
|
|
11
12
|
import { isPhoneNumberIdentifier } from '@azure/communication-common';
|
12
13
|
/* @conditional-compile-remove(communication-common-beta-v3) */
|
13
14
|
import { isMicrosoftBotIdentifier } from '@azure/communication-common';
|
14
|
-
const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipants) => {
|
15
|
+
const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipants, localUserCanRemoveOthers) => {
|
15
16
|
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
16
17
|
const conversionCallback = (memoizeFn) => {
|
17
18
|
return (remoteParticipants
|
@@ -36,8 +37,7 @@ const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipan
|
|
36
37
|
* and mapping their state to be 'Ringing'
|
37
38
|
*/
|
38
39
|
const state = _isRingingPSTNParticipant(participant);
|
39
|
-
return memoizeFn(toFlatCommunicationIdentifier(participant.identifier), participant.displayName, state, participant.isMuted, isScreenSharing, participant.isSpeaking,
|
40
|
-
/* @conditional-compile-remove(rooms) */ participant.role);
|
40
|
+
return memoizeFn(toFlatCommunicationIdentifier(participant.identifier), participant.displayName, state, participant.isMuted, isScreenSharing, participant.isSpeaking, localUserCanRemoveOthers);
|
41
41
|
})
|
42
42
|
.sort((a, b) => {
|
43
43
|
var _a, _b;
|
@@ -63,9 +63,18 @@ const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipan
|
|
63
63
|
*
|
64
64
|
* @public
|
65
65
|
*/
|
66
|
-
export const participantListSelector = createSelector([
|
66
|
+
export const participantListSelector = createSelector([
|
67
|
+
getIdentifier,
|
68
|
+
getDisplayName,
|
69
|
+
getRemoteParticipants,
|
70
|
+
getIsScreenSharingOn,
|
71
|
+
getIsMuted,
|
72
|
+
getRole,
|
73
|
+
getParticipantCount
|
74
|
+
], (userId, displayName, remoteParticipants, isScreenSharingOn, isMuted, role, partitipantCount) => {
|
75
|
+
const localUserCanRemoveOthers = localUserCanRemoveOthersTrampoline(role);
|
67
76
|
const participants = remoteParticipants
|
68
|
-
? convertRemoteParticipantsToParticipantListParticipants(updateUserDisplayNamesTrampoline(Object.values(remoteParticipants)))
|
77
|
+
? convertRemoteParticipantsToParticipantListParticipants(updateUserDisplayNamesTrampoline(Object.values(remoteParticipants)), localUserCanRemoveOthers)
|
69
78
|
: [];
|
70
79
|
participants.push({
|
71
80
|
userId: userId,
|
@@ -90,4 +99,9 @@ const updateUserDisplayNamesTrampoline = (remoteParticipants) => {
|
|
90
99
|
return _updateUserDisplayNames(remoteParticipants);
|
91
100
|
return remoteParticipants;
|
92
101
|
};
|
102
|
+
const localUserCanRemoveOthersTrampoline = (role) => {
|
103
|
+
/* @conditional-compile-remove(rooms) */
|
104
|
+
return role === 'Presenter' || role === 'Unknown' || role === undefined;
|
105
|
+
return true;
|
106
|
+
};
|
93
107
|
//# sourceMappingURL=participantListSelector.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"participantListSelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/participantListSelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EACL,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,UAAU,EAEX,MAAM,iBAAiB,CAAC;
|
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 getRemoteParticipants,\n getIsScreenSharingOn,\n getIsMuted,\n CallingBaseSelectorProps\n} from './baseSelectors';\nimport { getRole } from './baseSelectors';\nimport { CallParticipantListParticipant } from '@internal/react-components';\nimport { _isRingingPSTNParticipant, _updateUserDisplayNames } from './utils/callUtils';\nimport { memoizedConvertAllremoteParticipants } from './utils/participantListSelectorUtils';\n/* @conditional-compile-remove(rooms) */\nimport { memoizedConvertAllremoteParticipantsBeta } from './utils/participantListSelectorUtils';\nimport { toFlatCommunicationIdentifier } from '@internal/acs-ui-common';\nimport { getParticipantCount } from './baseSelectors';\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\n/* @conditional-compile-remove(communication-common-beta-v3) */\nimport { isMicrosoftBotIdentifier } from '@azure/communication-common';\n\nconst convertRemoteParticipantsToParticipantListParticipants = (\n remoteParticipants: RemoteParticipantState[],\n localUserCanRemoveOthers: boolean\n): CallParticipantListParticipant[] => {\n /* eslint-disable @typescript-eslint/explicit-function-return-type */\n const conversionCallback = (memoizeFn) => {\n return (\n remoteParticipants\n // Filter out MicrosoftBot participants\n .filter((participant: RemoteParticipantState) => {\n /* @conditional-compile-remove(communication-common-beta-v3) */\n return !isMicrosoftBotIdentifier(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 return memoizeFn(\n toFlatCommunicationIdentifier(participant.identifier),\n participant.displayName,\n state,\n participant.isMuted,\n isScreenSharing,\n participant.isSpeaking,\n localUserCanRemoveOthers\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(rooms) */\n return memoizedConvertAllremoteParticipantsBeta(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 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 getRemoteParticipants,\n getIsScreenSharingOn,\n getIsMuted,\n getRole,\n getParticipantCount\n ],\n (\n userId,\n displayName,\n remoteParticipants,\n isScreenSharingOn,\n isMuted,\n role,\n partitipantCount\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 )\n : [];\n participants.push({\n userId: userId,\n displayName: displayName,\n isScreenSharing: isScreenSharingOn,\n isMuted: isMuted,\n state: 'Connected',\n // Local participant can never remove themselves.\n isRemovable: false\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\"../../calling-stateful-client/src\"\"../../react-components/src\"\"../../acs-ui-common/src\""]}
|
package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
import { RemoteParticipantState } from '@azure/communication-calling';
|
2
2
|
import { CallParticipantListParticipant } from "../../../react-components/src";
|
3
|
-
import { Role } from "../../../react-components/src";
|
4
3
|
/**
|
5
4
|
* @private
|
6
5
|
*/
|
7
|
-
export declare const memoizedConvertAllremoteParticipants: (callback: import("../../../acs-ui-common/src").CallbackType<string, [displayName: string | undefined, state: RemoteParticipantState, isMuted: boolean, isScreenSharing: boolean, isSpeaking: boolean], CallParticipantListParticipant>) => CallParticipantListParticipant[];
|
6
|
+
export declare const memoizedConvertAllremoteParticipants: (callback: import("../../../acs-ui-common/src").CallbackType<string, [displayName: string | undefined, state: RemoteParticipantState, isMuted: boolean, isScreenSharing: boolean, isSpeaking: boolean, localUserCanRemoveOthers: boolean], CallParticipantListParticipant>) => CallParticipantListParticipant[];
|
8
7
|
/**
|
9
8
|
* @private
|
10
9
|
*/
|
11
|
-
export declare const memoizedConvertAllremoteParticipantsBeta: (callback: import("../../../acs-ui-common/src").CallbackType<string, [displayName: string | undefined, state: RemoteParticipantState, isMuted: boolean, isScreenSharing: boolean, isSpeaking: boolean,
|
10
|
+
export declare const memoizedConvertAllremoteParticipantsBeta: (callback: import("../../../acs-ui-common/src").CallbackType<string, [displayName: string | undefined, state: RemoteParticipantState, isMuted: boolean, isScreenSharing: boolean, isSpeaking: boolean, localUserCanRemoveOthers: boolean], CallParticipantListParticipant>) => CallParticipantListParticipant[];
|
12
11
|
//# sourceMappingURL=participantListSelectorUtils.d.ts.map
|
@@ -5,10 +5,10 @@ import { fromFlatCommunicationIdentifier, memoizeFnAll } from "../../../acs-ui-c
|
|
5
5
|
/**
|
6
6
|
* @private
|
7
7
|
*/
|
8
|
-
export const memoizedConvertAllremoteParticipants = memoizeFnAll((userId, displayName, state, isMuted, isScreenSharing, isSpeaking) => {
|
9
|
-
return convertRemoteParticipantToParticipantListParticipant(userId, displayName, state, isMuted, isScreenSharing, isSpeaking);
|
8
|
+
export const memoizedConvertAllremoteParticipants = memoizeFnAll((userId, displayName, state, isMuted, isScreenSharing, isSpeaking, localUserCanRemoveOthers) => {
|
9
|
+
return convertRemoteParticipantToParticipantListParticipant(userId, displayName, state, isMuted, isScreenSharing, isSpeaking, localUserCanRemoveOthers);
|
10
10
|
});
|
11
|
-
const convertRemoteParticipantToParticipantListParticipant = (userId, displayName, state, isMuted, isScreenSharing, isSpeaking) => {
|
11
|
+
const convertRemoteParticipantToParticipantListParticipant = (userId, displayName, state, isMuted, isScreenSharing, isSpeaking, localUserCanRemoveOthers) => {
|
12
12
|
const identifier = fromFlatCommunicationIdentifier(userId);
|
13
13
|
return {
|
14
14
|
userId,
|
@@ -19,18 +19,20 @@ const convertRemoteParticipantToParticipantListParticipant = (userId, displayNam
|
|
19
19
|
isSpeaking,
|
20
20
|
// ACS users can not remove Teams users.
|
21
21
|
// Removing unknown types of users is undefined.
|
22
|
-
isRemovable: getIdentifierKind(identifier).kind === 'communicationUser' ||
|
22
|
+
isRemovable: (getIdentifierKind(identifier).kind === 'communicationUser' ||
|
23
|
+
getIdentifierKind(identifier).kind === 'phoneNumber') &&
|
24
|
+
localUserCanRemoveOthers
|
23
25
|
};
|
24
26
|
};
|
25
27
|
/* @conditional-compile-remove(rooms) */
|
26
28
|
/**
|
27
29
|
* @private
|
28
30
|
*/
|
29
|
-
export const memoizedConvertAllremoteParticipantsBeta = memoizeFnAll((userId, displayName, state, isMuted, isScreenSharing, isSpeaking,
|
30
|
-
return convertRemoteParticipantToParticipantListParticipantBeta(userId, displayName, state, isMuted, isScreenSharing, isSpeaking,
|
31
|
+
export const memoizedConvertAllremoteParticipantsBeta = memoizeFnAll((userId, displayName, state, isMuted, isScreenSharing, isSpeaking, localUserCanRemoveOthers) => {
|
32
|
+
return convertRemoteParticipantToParticipantListParticipantBeta(userId, displayName, state, isMuted, isScreenSharing, isSpeaking, localUserCanRemoveOthers);
|
31
33
|
});
|
32
34
|
/* @conditional-compile-remove(rooms) */
|
33
|
-
const convertRemoteParticipantToParticipantListParticipantBeta = (userId, displayName, state, isMuted, isScreenSharing, isSpeaking,
|
34
|
-
return Object.assign(
|
35
|
+
const convertRemoteParticipantToParticipantListParticipantBeta = (userId, displayName, state, isMuted, isScreenSharing, isSpeaking, localUserCanRemoveOthers) => {
|
36
|
+
return Object.assign({}, convertRemoteParticipantToParticipantListParticipant(userId, displayName, state, isMuted, isScreenSharing, isSpeaking, localUserCanRemoveOthers));
|
35
37
|
};
|
36
38
|
//# sourceMappingURL=participantListSelectorUtils.js.map
|
package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"participantListSelectorUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/participantListSelectorUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,YAAY,EAAE,mCAAgC;
|
1
|
+
{"version":3,"file":"participantListSelectorUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/participantListSelectorUtils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,YAAY,EAAE,mCAAgC;AAGxF;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,YAAY,CAC9D,CACE,MAAc,EACd,WAA+B,EAC/B,KAA6B,EAC7B,OAAgB,EAChB,eAAwB,EACxB,UAAmB,EACnB,wBAAiC,EACD,EAAE;IAClC,OAAO,oDAAoD,CACzD,MAAM,EACN,WAAW,EACX,KAAK,EACL,OAAO,EACP,eAAe,EACf,UAAU,EACV,wBAAwB,CACzB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,oDAAoD,GAAG,CAC3D,MAAc,EACd,WAA+B,EAC/B,KAA6B,EAC7B,OAAgB,EAChB,eAAwB,EACxB,UAAmB,EACnB,wBAAiC,EACD,EAAE;IAClC,MAAM,UAAU,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO;QACL,MAAM;QACN,WAAW;QACX,KAAK;QACL,OAAO;QACP,eAAe;QACf,UAAU;QACV,wCAAwC;QACxC,gDAAgD;QAChD,WAAW,EACT,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,mBAAmB;YACzD,iBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;YACvD,wBAAwB;KAC3B,CAAC;AACJ,CAAC,CAAC;AAEF,wCAAwC;AACxC;;GAEG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,YAAY,CAClE,CACE,MAAc,EACd,WAA+B,EAC/B,KAA6B,EAC7B,OAAgB,EAChB,eAAwB,EACxB,UAAmB,EACnB,wBAAiC,EACD,EAAE;IAClC,OAAO,wDAAwD,CAC7D,MAAM,EACN,WAAW,EACX,KAAK,EACL,OAAO,EACP,eAAe,EACf,UAAU,EACV,wBAAwB,CACzB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,wCAAwC;AACxC,MAAM,wDAAwD,GAAG,CAC/D,MAAc,EACd,WAA+B,EAC/B,KAA6B,EAC7B,OAAgB,EAChB,eAAwB,EACxB,UAAmB,EACnB,wBAAiC,EACD,EAAE;IAClC,yBACK,oDAAoD,CACrD,MAAM,EACN,WAAW,EACX,KAAK,EACL,OAAO,EACP,eAAe,EACf,UAAU,EACV,wBAAwB,CACzB,EACD;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RemoteParticipantState } from '@azure/communication-calling';\nimport { getIdentifierKind } from '@azure/communication-common';\nimport { fromFlatCommunicationIdentifier, memoizeFnAll } from '@internal/acs-ui-common';\nimport { CallParticipantListParticipant } from '@internal/react-components';\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 localUserCanRemoveOthers: boolean\n ): CallParticipantListParticipant => {\n return convertRemoteParticipantToParticipantListParticipant(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\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 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 memoizedConvertAllremoteParticipantsBeta = memoizeFnAll(\n (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n localUserCanRemoveOthers: boolean\n ): CallParticipantListParticipant => {\n return convertRemoteParticipantToParticipantListParticipantBeta(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n localUserCanRemoveOthers\n );\n }\n);\n\n/* @conditional-compile-remove(rooms) */\nconst convertRemoteParticipantToParticipantListParticipantBeta = (\n userId: string,\n displayName: string | undefined,\n state: RemoteParticipantState,\n isMuted: boolean,\n isScreenSharing: boolean,\n isSpeaking: boolean,\n localUserCanRemoveOthers: boolean\n): CallParticipantListParticipant => {\n return {\n ...convertRemoteParticipantToParticipantListParticipant(\n userId,\n displayName,\n state,\n isMuted,\n isScreenSharing,\n isSpeaking,\n localUserCanRemoveOthers\n )\n };\n};\n\"../../../acs-ui-common/src\"\"../../../react-components/src\""]}
|
@@ -10,7 +10,7 @@ export declare const convertRemoteParticipantToVideoGalleryRemoteParticipant: (u
|
|
10
10
|
[key: number]: RemoteVideoStreamState;
|
11
11
|
}, state: RemoteParticipantConnectionState, displayName?: string | undefined) => VideoGalleryRemoteParticipant;
|
12
12
|
/** @private */
|
13
|
-
export declare const memoizeLocalParticipant: (this: any, identifier: any, displayName: any, isMuted: any, isScreenSharingOn: any, localVideoStream: any) => {
|
13
|
+
export declare const memoizeLocalParticipant: (this: any, identifier: any, displayName: any, isMuted: any, isScreenSharingOn: any, localVideoStream: any, role: any) => {
|
14
14
|
userId: any;
|
15
15
|
displayName: any;
|
16
16
|
isMuted: any;
|
@@ -20,5 +20,6 @@ export declare const memoizeLocalParticipant: (this: any, identifier: any, displ
|
|
20
20
|
isMirrored: any;
|
21
21
|
renderElement: any;
|
22
22
|
};
|
23
|
+
role: any;
|
23
24
|
};
|
24
25
|
//# sourceMappingURL=videoGalleryUtils.d.ts.map
|
@@ -76,7 +76,8 @@ const convertRemoteVideoStreamToVideoGalleryStream = (stream) => {
|
|
76
76
|
};
|
77
77
|
};
|
78
78
|
/** @private */
|
79
|
-
export const memoizeLocalParticipant = memoizeOne((identifier, displayName, isMuted, isScreenSharingOn, localVideoStream
|
79
|
+
export const memoizeLocalParticipant = memoizeOne((identifier, displayName, isMuted, isScreenSharingOn, localVideoStream,
|
80
|
+
/* @conditional-compile-remove(rooms) */ role) => {
|
80
81
|
var _a, _b;
|
81
82
|
return ({
|
82
83
|
userId: identifier,
|
@@ -87,7 +88,9 @@ export const memoizeLocalParticipant = memoizeOne((identifier, displayName, isMu
|
|
87
88
|
isAvailable: !!localVideoStream,
|
88
89
|
isMirrored: (_a = localVideoStream === null || localVideoStream === void 0 ? void 0 : localVideoStream.view) === null || _a === void 0 ? void 0 : _a.isMirrored,
|
89
90
|
renderElement: (_b = localVideoStream === null || localVideoStream === void 0 ? void 0 : localVideoStream.view) === null || _b === void 0 ? void 0 : _b.target
|
90
|
-
}
|
91
|
+
},
|
92
|
+
/* @conditional-compile-remove(rooms) */
|
93
|
+
role
|
91
94
|
});
|
92
95
|
});
|
93
96
|
//# sourceMappingURL=videoGalleryUtils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"videoGalleryUtils.js","sourceRoot":"","sources":["../../../../../../calling-component-bindings/src/utils/videoGalleryUtils.ts"],"names":[],"mappings":"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
|
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';\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';\nimport { checkIsSpeaking } from './SelectorUtils';\nimport { isPhoneNumberIdentifier } from '@azure/communication-common';\n\n/** @internal */\nexport const _dominantSpeakersWithFlatId = (dominantSpeakers?: DominantSpeakersInfo): undefined | string[] => {\n return dominantSpeakers?.speakersList?.map(toFlatCommunicationIdentifier);\n};\n\n/** @internal */\nexport const _videoGalleryRemoteParticipantsMemo = (\n remoteParticipants: RemoteParticipantState[] | undefined\n): VideoGalleryRemoteParticipant[] => {\n if (!remoteParticipants) {\n return [];\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 return memoizedFn(\n toFlatCommunicationIdentifier(participant.identifier),\n participant.isMuted,\n checkIsSpeaking(participant),\n participant.videoStreams,\n state,\n participant.displayName\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 ): VideoGalleryRemoteParticipant => {\n return convertRemoteParticipantToVideoGalleryRemoteParticipant(\n userId,\n isMuted,\n isSpeaking,\n videoStreams,\n state,\n displayName\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): 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 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 };\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 /* @conditional-compile-remove(pinned-participants) */\n scalingMode: stream.view?.scalingMode\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 ) => ({\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 })\n);\n\"../../../acs-ui-common/src\"\"../../../calling-stateful-client/src\"\"../../../react-components/src\""]}
|
@@ -3,6 +3,8 @@
|
|
3
3
|
import { toFlatCommunicationIdentifier } from "../../acs-ui-common/src";
|
4
4
|
import { createSelector } from 'reselect';
|
5
5
|
import { getDisplayName, getDominantSpeakers, getIdentifier, getIsMuted, getIsScreenSharingOn, getLocalVideoStreams, getRemoteParticipants, getScreenShareRemoteParticipant } from './baseSelectors';
|
6
|
+
/* @conditional-compile-remove(rooms) */
|
7
|
+
import { getRole } from './baseSelectors';
|
6
8
|
/* @conditional-compile-remove(optimal-video-count) */
|
7
9
|
import { getOptimalVideoCount } from './baseSelectors';
|
8
10
|
import { _updateUserDisplayNames } from './utils/callUtils';
|
@@ -22,10 +24,14 @@ export const videoGallerySelector = createSelector([
|
|
22
24
|
getIdentifier,
|
23
25
|
getDominantSpeakers,
|
24
26
|
/* @conditional-compile-remove(optimal-video-count) */
|
25
|
-
getOptimalVideoCount
|
27
|
+
getOptimalVideoCount,
|
28
|
+
/* @conditional-compile-remove(rooms) */
|
29
|
+
getRole
|
26
30
|
], (screenShareRemoteParticipantId, remoteParticipants, localVideoStreams, isMuted, isScreenSharingOn, displayName, identifier, dominantSpeakers,
|
27
31
|
/* @conditional-compile-remove(optimal-video-count) */
|
28
|
-
optimalVideoCount
|
32
|
+
optimalVideoCount,
|
33
|
+
/* @conditional-compile-remove(rooms) */
|
34
|
+
role) => {
|
29
35
|
const screenShareRemoteParticipant = screenShareRemoteParticipantId && remoteParticipants
|
30
36
|
? remoteParticipants[screenShareRemoteParticipantId]
|
31
37
|
: undefined;
|
@@ -38,7 +44,9 @@ optimalVideoCount) => {
|
|
38
44
|
screenShareParticipant: screenShareRemoteParticipant
|
39
45
|
? convertRemoteParticipantToVideoGalleryRemoteParticipant(toFlatCommunicationIdentifier(screenShareRemoteParticipant.identifier), screenShareRemoteParticipant.isMuted, checkIsSpeaking(screenShareRemoteParticipant), screenShareRemoteParticipant.videoStreams, screenShareRemoteParticipant.state, screenShareRemoteParticipant.displayName)
|
40
46
|
: undefined,
|
41
|
-
localParticipant: memoizeLocalParticipant(identifier, displayName, isMuted, isScreenSharingOn, localVideoStream
|
47
|
+
localParticipant: memoizeLocalParticipant(identifier, displayName, isMuted, isScreenSharingOn, localVideoStream,
|
48
|
+
/* @conditional-compile-remove(rooms) */
|
49
|
+
role),
|
42
50
|
remoteParticipants: _videoGalleryRemoteParticipantsMemo(updateUserDisplayNamesTrampoline(remoteParticipants ? Object.values(remoteParticipants) : noRemoteParticipants)),
|
43
51
|
dominantSpeakers: dominantSpeakerIds,
|
44
52
|
/* @conditional-compile-remove(optimal-video-count) */
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"videoGallerySelector.js","sourceRoot":"","sources":["../../../../../calling-component-bindings/src/videoGallerySelector.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,6BAA6B,EAAE,gCAAgC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAEL,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,+BAA+B,EAChC,MAAM,iBAAiB,CAAC;AACzB,sDAAsD;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,mCAAmC,EACnC,2BAA2B,EAC3B,uDAAuD,EACvD,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAmBnC;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAyB,cAAc,CACtE;IACE,+BAA+B;IAC/B,qBAAqB;IACrB,oBAAoB;IACpB,UAAU;IACV,oBAAoB;IACpB,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,sDAAsD;IACtD,oBAAoB;
|
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 { VideoGalleryLocalParticipant, VideoGalleryRemoteParticipant } from '@internal/react-components';\nimport { createSelector } from 'reselect';\nimport {\n CallingBaseSelectorProps,\n getDisplayName,\n getDominantSpeakers,\n getIdentifier,\n getIsMuted,\n getIsScreenSharingOn,\n getLocalVideoStreams,\n getRemoteParticipants,\n getScreenShareRemoteParticipant\n} from './baseSelectors';\n/* @conditional-compile-remove(rooms) */\nimport { getRole } 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\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 | undefined;\n localParticipant: VideoGalleryLocalParticipant;\n remoteParticipants: VideoGalleryRemoteParticipant[];\n dominantSpeakers?: string[];\n /* @conditional-compile-remove(optimal-video-count) */\n optimalVideoCount?: number;\n};\n\n/**\n * Provides data attributes to {@link VideoGallery} component.\n * @public\n */\nexport const videoGallerySelector: VideoGallerySelector = createSelector(\n [\n getScreenShareRemoteParticipant,\n getRemoteParticipants,\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 ],\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 ) => {\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 = [];\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 )\n : undefined,\n localParticipant: memoizeLocalParticipant(\n identifier,\n displayName,\n isMuted,\n isScreenSharingOn,\n localVideoStream,\n /* @conditional-compile-remove(rooms) */\n role\n ),\n remoteParticipants: _videoGalleryRemoteParticipantsMemo(\n updateUserDisplayNamesTrampoline(remoteParticipants ? Object.values(remoteParticipants) : noRemoteParticipants)\n ),\n dominantSpeakers: dominantSpeakerIds,\n /* @conditional-compile-remove(optimal-video-count) */\n maxRemoteVideoStreams: optimalVideoCount\n };\n }\n);\n\nconst updateUserDisplayNamesTrampoline = (remoteParticipants: RemoteParticipantState[]): RemoteParticipantState[] => {\n /* @conditional-compile-remove(PSTN-calls) */\n return _updateUserDisplayNames(remoteParticipants);\n return remoteParticipants;\n};\n\"../../acs-ui-common/src\"\"../../calling-stateful-client/src\"\"../../react-components/src\""]}
|
@@ -35,7 +35,6 @@ export type { ParticipantListStrings } from '../../react-components/src';
|
|
35
35
|
export type { MentionOptions, MentionDisplayOptions, MentionLookupOptions, Mention, MentionPopoverStrings } from '../../react-components/src';
|
36
36
|
export type { _IdentifierProviderProps, _Identifiers, ActiveErrorMessage, BaseCustomStyles, CallParticipantListParticipant, CameraButtonContextualMenuStyles, CameraButtonProps, CameraButtonStrings, CameraButtonStyles, ChatMessage, CommunicationParticipant, ComponentLocale, ComponentSlotStyle, ComponentStrings, ContentSystemMessage, ControlBarButtonProps, ControlBarButtonStrings, ControlBarButtonStyles, ControlBarLayout, ControlBarProps, CreateVideoStreamViewResult, CustomAvatarOptions, CustomMessage, DevicesButtonContextualMenuStyles, DevicesButtonProps, DevicesButtonStrings, DevicesButtonStyles, EndCallButtonProps, EndCallButtonStrings, ErrorBarProps, ErrorBarStrings, ErrorType, GridLayoutProps, GridLayoutStyles, HorizontalGalleryStyles, JumpToNewMessageButtonProps, LocalizationProviderProps, LocalVideoCameraCycleButtonProps, LoadingState, Message, MessageAttachedStatus, MessageCommon, MessageContentType, MessageProps, MessageRenderer, MessageStatusIndicatorProps, MessageStatusIndicatorStrings, MessageThreadProps, MessageThreadStrings, MessageThreadStyles, MicrophoneButtonContextualMenuStyles, MicrophoneButtonProps, MicrophoneButtonStrings, MicrophoneButtonStyles, OnRenderAvatarCallback, OptionsDevice, ParticipantAddedSystemMessage, ParticipantItemProps, ParticipantItemStrings, ParticipantItemStyles, ParticipantListItemStyles, ParticipantListParticipant, ParticipantListProps, ParticipantListStyles, ParticipantMenuItemsCallback, ParticipantRemovedSystemMessage, ParticipantState, ParticipantsButtonContextualMenuStyles, ParticipantsButtonProps, ParticipantsButtonStrings, ParticipantsButtonStyles, ReadReceiptsBySenderId, ScreenShareButtonProps, ScreenShareButtonStrings, SendBoxProps, SendBoxStrings, SendBoxStylesProps, StreamMediaProps, SystemMessage, SystemMessageCommon, TopicUpdatedSystemMessage, TypingIndicatorProps, TypingIndicatorStrings, TypingIndicatorStylesProps, UpdateMessageCallback, CancelEditCallback, VideoGalleryLayout, VideoGalleryLocalParticipant, VideoGalleryParticipant, VideoGalleryProps, VideoGalleryRemoteParticipant, VideoGalleryStream, VideoGalleryStrings, VideoGalleryStyles, VideoStreamOptions, VideoTileProps, VideoTileStylesProps, ViewScalingMode } from '../../react-components/src';
|
37
37
|
export type { BlockedMessage } from '../../react-components/src';
|
38
|
-
export type { Role } from '../../react-components/src';
|
39
38
|
export type { DialpadProps, DialpadStrings, DialpadStyles, DtmfTone } from '../../react-components/src';
|
40
39
|
export type { ActiveFileUpload, SendBoxErrorBarError, FileDownloadHandler, FileDownloadError } from '../../react-components/src';
|
41
40
|
export type { FileMetadata } from '../../react-components/src';
|