@stream-io/video-react-sdk 0.3.41 → 0.3.43
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/CHANGELOG.md +23 -0
- package/README.md +1 -1
- package/dist/index.cjs.js +2737 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.es.js +2633 -0
- package/dist/index.es.js.map +1 -0
- package/dist/src/components/Button/CompositeButton.d.ts +1 -1
- package/dist/src/core/components/ParticipantView/ParticipantView.d.ts +1 -1
- package/dist/src/hooks/useFloatingUIPreset.d.ts +1 -1
- package/index.ts +3 -3
- package/package.json +17 -15
- package/src/components/Permissions/PermissionRequests.tsx +1 -1
- package/dist/index.js +0 -18
- package/dist/index.js.map +0 -1
- package/dist/src/components/Avatar/Avatar.js +0 -24
- package/dist/src/components/Avatar/Avatar.js.map +0 -1
- package/dist/src/components/Avatar/index.js +0 -2
- package/dist/src/components/Avatar/index.js.map +0 -1
- package/dist/src/components/Button/CompositeButton.js +0 -13
- package/dist/src/components/Button/CompositeButton.js.map +0 -1
- package/dist/src/components/Button/CopyToClipboardButton.js +0 -54
- package/dist/src/components/Button/CopyToClipboardButton.js.map +0 -1
- package/dist/src/components/Button/IconButton.js +0 -26
- package/dist/src/components/Button/IconButton.js.map +0 -1
- package/dist/src/components/Button/TextButton.js +0 -17
- package/dist/src/components/Button/TextButton.js.map +0 -1
- package/dist/src/components/Button/index.js +0 -5
- package/dist/src/components/Button/index.js.map +0 -1
- package/dist/src/components/CallControls/AcceptCallButton.js +0 -27
- package/dist/src/components/CallControls/AcceptCallButton.js.map +0 -1
- package/dist/src/components/CallControls/CallControls.js +0 -5
- package/dist/src/components/CallControls/CallControls.js.map +0 -1
- package/dist/src/components/CallControls/CallStatsButton.js +0 -8
- package/dist/src/components/CallControls/CallStatsButton.js.map +0 -1
- package/dist/src/components/CallControls/CancelCallButton.js +0 -27
- package/dist/src/components/CallControls/CancelCallButton.js.map +0 -1
- package/dist/src/components/CallControls/ReactionsButton.js +0 -45
- package/dist/src/components/CallControls/ReactionsButton.js.map +0 -1
- package/dist/src/components/CallControls/RecordCallButton.js +0 -22
- package/dist/src/components/CallControls/RecordCallButton.js.map +0 -1
- package/dist/src/components/CallControls/ScreenShareButton.js +0 -15
- package/dist/src/components/CallControls/ScreenShareButton.js.map +0 -1
- package/dist/src/components/CallControls/ToggleAudioButton.js +0 -24
- package/dist/src/components/CallControls/ToggleAudioButton.js.map +0 -1
- package/dist/src/components/CallControls/ToggleAudioOutputButton.js +0 -10
- package/dist/src/components/CallControls/ToggleAudioOutputButton.js.map +0 -1
- package/dist/src/components/CallControls/ToggleVideoButton.js +0 -24
- package/dist/src/components/CallControls/ToggleVideoButton.js.map +0 -1
- package/dist/src/components/CallControls/index.js +0 -11
- package/dist/src/components/CallControls/index.js.map +0 -1
- package/dist/src/components/CallParticipantsList/BlockedUserListing.js +0 -18
- package/dist/src/components/CallParticipantsList/BlockedUserListing.js.map +0 -1
- package/dist/src/components/CallParticipantsList/CallParticipantListHeader.js +0 -10
- package/dist/src/components/CallParticipantsList/CallParticipantListHeader.js.map +0 -1
- package/dist/src/components/CallParticipantsList/CallParticipantListing.js +0 -4
- package/dist/src/components/CallParticipantsList/CallParticipantListing.js.map +0 -1
- package/dist/src/components/CallParticipantsList/CallParticipantListingItem.js +0 -128
- package/dist/src/components/CallParticipantsList/CallParticipantListingItem.js.map +0 -1
- package/dist/src/components/CallParticipantsList/CallParticipantsList.js +0 -83
- package/dist/src/components/CallParticipantsList/CallParticipantsList.js.map +0 -1
- package/dist/src/components/CallParticipantsList/EmptyParticipantSearchList.js +0 -7
- package/dist/src/components/CallParticipantsList/EmptyParticipantSearchList.js.map +0 -1
- package/dist/src/components/CallParticipantsList/index.js +0 -4
- package/dist/src/components/CallParticipantsList/index.js.map +0 -1
- package/dist/src/components/CallPreview/CallPreview.js +0 -21
- package/dist/src/components/CallPreview/CallPreview.js.map +0 -1
- package/dist/src/components/CallPreview/index.js +0 -2
- package/dist/src/components/CallPreview/index.js.map +0 -1
- package/dist/src/components/CallRecordingList/CallRecordingList.js +0 -9
- package/dist/src/components/CallRecordingList/CallRecordingList.js.map +0 -1
- package/dist/src/components/CallRecordingList/CallRecordingListHeader.js +0 -6
- package/dist/src/components/CallRecordingList/CallRecordingListHeader.js.map +0 -1
- package/dist/src/components/CallRecordingList/CallRecordingListItem.js +0 -11
- package/dist/src/components/CallRecordingList/CallRecordingListItem.js.map +0 -1
- package/dist/src/components/CallRecordingList/EmptyCallRecordingListing.js +0 -5
- package/dist/src/components/CallRecordingList/EmptyCallRecordingListing.js.map +0 -1
- package/dist/src/components/CallRecordingList/LoadingCallRecordingListing.js +0 -7
- package/dist/src/components/CallRecordingList/LoadingCallRecordingListing.js.map +0 -1
- package/dist/src/components/CallRecordingList/index.js +0 -6
- package/dist/src/components/CallRecordingList/index.js.map +0 -1
- package/dist/src/components/CallStats/CallStats.js +0 -70
- package/dist/src/components/CallStats/CallStats.js.map +0 -1
- package/dist/src/components/CallStats/CallStatsLatencyChart.js +0 -39
- package/dist/src/components/CallStats/CallStatsLatencyChart.js.map +0 -1
- package/dist/src/components/CallStats/index.js +0 -3
- package/dist/src/components/CallStats/index.js.map +0 -1
- package/dist/src/components/Debug/DebugParticipantPublishQuality.js +0 -46
- package/dist/src/components/Debug/DebugParticipantPublishQuality.js.map +0 -1
- package/dist/src/components/Debug/DebugStatsView.js +0 -66
- package/dist/src/components/Debug/DebugStatsView.js.map +0 -1
- package/dist/src/components/Debug/useIsDebugMode.js +0 -18
- package/dist/src/components/Debug/useIsDebugMode.js.map +0 -1
- package/dist/src/components/DeviceSettings/DeviceSelector.js +0 -26
- package/dist/src/components/DeviceSettings/DeviceSelector.js.map +0 -1
- package/dist/src/components/DeviceSettings/DeviceSelectorAudio.js +0 -20
- package/dist/src/components/DeviceSettings/DeviceSelectorAudio.js.map +0 -1
- package/dist/src/components/DeviceSettings/DeviceSelectorVideo.js +0 -11
- package/dist/src/components/DeviceSettings/DeviceSelectorVideo.js.map +0 -1
- package/dist/src/components/DeviceSettings/DeviceSettings.js +0 -15
- package/dist/src/components/DeviceSettings/DeviceSettings.js.map +0 -1
- package/dist/src/components/DeviceSettings/index.js +0 -5
- package/dist/src/components/DeviceSettings/index.js.map +0 -1
- package/dist/src/components/Icon/Icon.js +0 -4
- package/dist/src/components/Icon/Icon.js.map +0 -1
- package/dist/src/components/Icon/index.js +0 -2
- package/dist/src/components/Icon/index.js.map +0 -1
- package/dist/src/components/LoadingIndicator/LoadingIndicator.js +0 -6
- package/dist/src/components/LoadingIndicator/LoadingIndicator.js.map +0 -1
- package/dist/src/components/LoadingIndicator/index.js +0 -2
- package/dist/src/components/LoadingIndicator/index.js.map +0 -1
- package/dist/src/components/Menu/GenericMenu.js +0 -20
- package/dist/src/components/Menu/GenericMenu.js.map +0 -1
- package/dist/src/components/Menu/MenuToggle.js +0 -40
- package/dist/src/components/Menu/MenuToggle.js.map +0 -1
- package/dist/src/components/Menu/index.js +0 -3
- package/dist/src/components/Menu/index.js.map +0 -1
- package/dist/src/components/Notification/Notification.js +0 -25
- package/dist/src/components/Notification/Notification.js.map +0 -1
- package/dist/src/components/Notification/PermissionNotification.js +0 -26
- package/dist/src/components/Notification/PermissionNotification.js.map +0 -1
- package/dist/src/components/Notification/SpeakingWhileMutedNotification.js +0 -50
- package/dist/src/components/Notification/SpeakingWhileMutedNotification.js.map +0 -1
- package/dist/src/components/Notification/index.js +0 -4
- package/dist/src/components/Notification/index.js.map +0 -1
- package/dist/src/components/Permissions/PermissionRequests.js +0 -122
- package/dist/src/components/Permissions/PermissionRequests.js.map +0 -1
- package/dist/src/components/Permissions/index.js +0 -2
- package/dist/src/components/Permissions/index.js.map +0 -1
- package/dist/src/components/Reaction/Reaction.js +0 -29
- package/dist/src/components/Reaction/Reaction.js.map +0 -1
- package/dist/src/components/Reaction/index.js +0 -2
- package/dist/src/components/Reaction/index.js.map +0 -1
- package/dist/src/components/RingingCall/RingingCall.js +0 -45
- package/dist/src/components/RingingCall/RingingCall.js.map +0 -1
- package/dist/src/components/RingingCall/RingingCallControls.js +0 -14
- package/dist/src/components/RingingCall/RingingCallControls.js.map +0 -1
- package/dist/src/components/RingingCall/index.js +0 -3
- package/dist/src/components/RingingCall/index.js.map +0 -1
- package/dist/src/components/Search/SearchInput.js +0 -34
- package/dist/src/components/Search/SearchInput.js.map +0 -1
- package/dist/src/components/Search/SearchResults.js +0 -12
- package/dist/src/components/Search/SearchResults.js.map +0 -1
- package/dist/src/components/Search/hooks/index.js +0 -2
- package/dist/src/components/Search/hooks/index.js.map +0 -1
- package/dist/src/components/Search/hooks/useSearch.js +0 -39
- package/dist/src/components/Search/hooks/useSearch.js.map +0 -1
- package/dist/src/components/Search/index.js +0 -3
- package/dist/src/components/Search/index.js.map +0 -1
- package/dist/src/components/StreamTheme/StreamTheme.js +0 -18
- package/dist/src/components/StreamTheme/StreamTheme.js.map +0 -1
- package/dist/src/components/StreamTheme/index.js +0 -2
- package/dist/src/components/StreamTheme/index.js.map +0 -1
- package/dist/src/components/Tooltip/Tooltip.js +0 -22
- package/dist/src/components/Tooltip/Tooltip.js.map +0 -1
- package/dist/src/components/Tooltip/WithTooltip.js +0 -23
- package/dist/src/components/Tooltip/WithTooltip.js.map +0 -1
- package/dist/src/components/Tooltip/hooks/index.js +0 -2
- package/dist/src/components/Tooltip/hooks/index.js.map +0 -1
- package/dist/src/components/Tooltip/hooks/useEnterLeaveHandlers.js +0 -14
- package/dist/src/components/Tooltip/hooks/useEnterLeaveHandlers.js.map +0 -1
- package/dist/src/components/Tooltip/index.js +0 -3
- package/dist/src/components/Tooltip/index.js.map +0 -1
- package/dist/src/components/Video/VideoPreview.js +0 -75
- package/dist/src/components/Video/VideoPreview.js.map +0 -1
- package/dist/src/components/Video/index.js +0 -5
- package/dist/src/components/Video/index.js.map +0 -1
- package/dist/src/components/index.js +0 -18
- package/dist/src/components/index.js.map +0 -1
- package/dist/src/core/components/Audio/Audio.js +0 -30
- package/dist/src/core/components/Audio/Audio.js.map +0 -1
- package/dist/src/core/components/Audio/ParticipantsAudio.js +0 -21
- package/dist/src/core/components/Audio/ParticipantsAudio.js.map +0 -1
- package/dist/src/core/components/Audio/index.js +0 -3
- package/dist/src/core/components/Audio/index.js.map +0 -1
- package/dist/src/core/components/CallLayout/LivestreamLayout.js +0 -89
- package/dist/src/core/components/CallLayout/LivestreamLayout.js.map +0 -1
- package/dist/src/core/components/CallLayout/PaginatedGridLayout.js +0 -47
- package/dist/src/core/components/CallLayout/PaginatedGridLayout.js.map +0 -1
- package/dist/src/core/components/CallLayout/SpeakerLayout.js +0 -71
- package/dist/src/core/components/CallLayout/SpeakerLayout.js.map +0 -1
- package/dist/src/core/components/CallLayout/hooks.js +0 -41
- package/dist/src/core/components/CallLayout/hooks.js.map +0 -1
- package/dist/src/core/components/CallLayout/index.js +0 -4
- package/dist/src/core/components/CallLayout/index.js.map +0 -1
- package/dist/src/core/components/ParticipantView/DefaultParticipantViewUI.js +0 -48
- package/dist/src/core/components/ParticipantView/DefaultParticipantViewUI.js.map +0 -1
- package/dist/src/core/components/ParticipantView/ParticipantView.js +0 -54
- package/dist/src/core/components/ParticipantView/ParticipantView.js.map +0 -1
- package/dist/src/core/components/ParticipantView/index.js +0 -3
- package/dist/src/core/components/ParticipantView/index.js.map +0 -1
- package/dist/src/core/components/StreamCall/StreamCall.js +0 -7
- package/dist/src/core/components/StreamCall/StreamCall.js.map +0 -1
- package/dist/src/core/components/StreamCall/index.js +0 -2
- package/dist/src/core/components/StreamCall/index.js.map +0 -1
- package/dist/src/core/components/StreamVideo/StreamVideo.js +0 -7
- package/dist/src/core/components/StreamVideo/StreamVideo.js.map +0 -1
- package/dist/src/core/components/StreamVideo/index.js +0 -2
- package/dist/src/core/components/StreamVideo/index.js.map +0 -1
- package/dist/src/core/components/Video/BaseVideo.js +0 -48
- package/dist/src/core/components/Video/BaseVideo.js.map +0 -1
- package/dist/src/core/components/Video/DefaultVideoPlaceholder.js +0 -9
- package/dist/src/core/components/Video/DefaultVideoPlaceholder.js.map +0 -1
- package/dist/src/core/components/Video/Video.js +0 -82
- package/dist/src/core/components/Video/Video.js.map +0 -1
- package/dist/src/core/components/Video/index.js +0 -3
- package/dist/src/core/components/Video/index.js.map +0 -1
- package/dist/src/core/components/index.js +0 -7
- package/dist/src/core/components/index.js.map +0 -1
- package/dist/src/core/contexts/MediaDevicesContext.js +0 -178
- package/dist/src/core/contexts/MediaDevicesContext.js.map +0 -1
- package/dist/src/core/contexts/index.js +0 -2
- package/dist/src/core/contexts/index.js.map +0 -1
- package/dist/src/core/hooks/index.js +0 -5
- package/dist/src/core/hooks/index.js.map +0 -1
- package/dist/src/core/hooks/useAudioPublisher.js +0 -114
- package/dist/src/core/hooks/useAudioPublisher.js.map +0 -1
- package/dist/src/core/hooks/useCalculateHardLimit.js +0 -56
- package/dist/src/core/hooks/useCalculateHardLimit.js.map +0 -1
- package/dist/src/core/hooks/useDevices.js +0 -172
- package/dist/src/core/hooks/useDevices.js.map +0 -1
- package/dist/src/core/hooks/useTrackElementVisibility.js +0 -15
- package/dist/src/core/hooks/useTrackElementVisibility.js.map +0 -1
- package/dist/src/core/hooks/useVideoPublisher.js +0 -139
- package/dist/src/core/hooks/useVideoPublisher.js.map +0 -1
- package/dist/src/core/index.js +0 -4
- package/dist/src/core/index.js.map +0 -1
- package/dist/src/hooks/index.js +0 -8
- package/dist/src/hooks/index.js.map +0 -1
- package/dist/src/hooks/useFloatingUIPreset.js +0 -30
- package/dist/src/hooks/useFloatingUIPreset.js.map +0 -1
- package/dist/src/hooks/useRequestPermission.js +0 -46
- package/dist/src/hooks/useRequestPermission.js.map +0 -1
- package/dist/src/hooks/useScrollPosition.js +0 -63
- package/dist/src/hooks/useScrollPosition.js.map +0 -1
- package/dist/src/hooks/useToggleAudioMuteState.js +0 -34
- package/dist/src/hooks/useToggleAudioMuteState.js.map +0 -1
- package/dist/src/hooks/useToggleCallRecording.js +0 -44
- package/dist/src/hooks/useToggleCallRecording.js.map +0 -1
- package/dist/src/hooks/useToggleScreenShare.js +0 -38
- package/dist/src/hooks/useToggleScreenShare.js.map +0 -1
- package/dist/src/hooks/useToggleVideoMuteState.js +0 -34
- package/dist/src/hooks/useToggleVideoMuteState.js.map +0 -1
- package/dist/src/translations/en.json +0 -73
- package/dist/src/translations/index.js +0 -3
- package/dist/src/translations/index.js.map +0 -1
- package/dist/src/types/components.js +0 -2
- package/dist/src/types/components.js.map +0 -1
- package/dist/src/types/index.js +0 -2
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/utilities/applyElementToRef.js +0 -8
- package/dist/src/utilities/applyElementToRef.js.map +0 -1
- package/dist/src/utilities/chunk.js +0 -5
- package/dist/src/utilities/chunk.js.map +0 -1
- package/dist/src/utilities/index.js +0 -4
- package/dist/src/utilities/index.js.map +0 -1
- package/dist/src/utilities/isComponentType.js +0 -7
- package/dist/src/utilities/isComponentType.js.map +0 -1
- package/dist/version.d.ts +0 -1
- package/dist/version.js +0 -2
- package/dist/version.js.map +0 -1
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export * from './Avatar';
|
|
2
|
-
export * from './Button';
|
|
3
|
-
export * from './CallControls';
|
|
4
|
-
export * from './CallParticipantsList';
|
|
5
|
-
export * from './CallPreview';
|
|
6
|
-
export * from './CallRecordingList';
|
|
7
|
-
export * from './DeviceSettings';
|
|
8
|
-
export * from './Icon';
|
|
9
|
-
export * from './LoadingIndicator';
|
|
10
|
-
export * from './Menu';
|
|
11
|
-
export * from './Notification';
|
|
12
|
-
export * from './RingingCall';
|
|
13
|
-
export * from './Permissions';
|
|
14
|
-
export * from './StreamTheme';
|
|
15
|
-
export * from './Search';
|
|
16
|
-
export * from './Tooltip';
|
|
17
|
-
export * from './Video';
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
-
import { useEffect, useState } from 'react';
|
|
14
|
-
import { useCall } from '@stream-io/video-react-bindings';
|
|
15
|
-
export const Audio = (_a) => {
|
|
16
|
-
var { participant, trackType = 'audioTrack' } = _a, rest = __rest(_a, ["participant", "trackType"]);
|
|
17
|
-
const call = useCall();
|
|
18
|
-
const [audioElement, setAudioElement] = useState(null);
|
|
19
|
-
const { userId, sessionId } = participant;
|
|
20
|
-
useEffect(() => {
|
|
21
|
-
if (!call || !audioElement)
|
|
22
|
-
return;
|
|
23
|
-
const cleanup = call.bindAudioElement(audioElement, sessionId, trackType);
|
|
24
|
-
return () => {
|
|
25
|
-
cleanup === null || cleanup === void 0 ? void 0 : cleanup();
|
|
26
|
-
};
|
|
27
|
-
}, [call, sessionId, audioElement, trackType]);
|
|
28
|
-
return (_jsx("audio", Object.assign({ autoPlay: true }, rest, { ref: setAudioElement, "data-user-id": userId, "data-session-id": sessionId, "data-track-type": trackType })));
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=Audio.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Audio.js","sourceRoot":"","sources":["../../../../../src/core/components/Audio/Audio.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAA4B,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKtE,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAe1D,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAIT,EAAE,EAAE;QAJK,EACpB,WAAW,EACX,SAAS,GAAG,YAAY,OAEb,EADR,IAAI,cAHa,4BAIrB,CADQ;IAEP,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAC9C,IAAI,CACL,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1E,OAAO,GAAG,EAAE;YACV,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAC;QACd,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/C,OAAO,CACL,8BACE,QAAQ,UACJ,IAAI,IACR,GAAG,EAAE,eAAe,kBACN,MAAM,qBACH,SAAS,qBACT,SAAS,IAC1B,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createElement as _createElement } from "react";
|
|
3
|
-
import { SfuModels } from '@stream-io/video-client';
|
|
4
|
-
import { Audio } from './Audio';
|
|
5
|
-
export const ParticipantsAudio = (props) => {
|
|
6
|
-
const { participants, audioProps } = props;
|
|
7
|
-
return (_jsx(_Fragment, { children: participants.map((participant) => {
|
|
8
|
-
if (participant.isLocalParticipant)
|
|
9
|
-
return null;
|
|
10
|
-
const hasAudio = participant.publishedTracks.includes(SfuModels.TrackType.AUDIO);
|
|
11
|
-
const hasScreenShareAudio = participant.publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE_AUDIO);
|
|
12
|
-
if (hasAudio && participant.audioStream) {
|
|
13
|
-
return (_createElement(Audio, Object.assign({}, audioProps, { trackType: "audioTrack", participant: participant, key: participant.sessionId })));
|
|
14
|
-
}
|
|
15
|
-
if (hasScreenShareAudio && participant.screenShareAudioStream) {
|
|
16
|
-
return (_createElement(Audio, Object.assign({}, audioProps, { trackType: "screenShareAudioTrack", participant: participant, key: participant.sessionId })));
|
|
17
|
-
}
|
|
18
|
-
return null;
|
|
19
|
-
}) }));
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=ParticipantsAudio.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ParticipantsAudio.js","sourceRoot":"","sources":["../../../../../src/core/components/Audio/ParticipantsAudio.tsx"],"names":[],"mappings":";;AACA,OAAO,EAAE,SAAS,EAA0B,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAchC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAE,EAAE;IACjE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC3C,OAAO,CACL,4BACG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;YAChC,IAAI,WAAW,CAAC,kBAAkB;gBAAE,OAAO,IAAI,CAAC;YAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,QAAQ,CACnD,SAAS,CAAC,SAAS,CAAC,KAAK,CAC1B,CAAC;YACF,MAAM,mBAAmB,GAAG,WAAW,CAAC,eAAe,CAAC,QAAQ,CAC9D,SAAS,CAAC,SAAS,CAAC,kBAAkB,CACvC,CAAC;YACF,IAAI,QAAQ,IAAI,WAAW,CAAC,WAAW,EAAE;gBACvC,OAAO,CACL,eAAC,KAAK,oBACA,UAAU,IACd,SAAS,EAAC,YAAY,EACtB,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,WAAW,CAAC,SAAS,IAC1B,CACH,CAAC;aACH;YACD,IAAI,mBAAmB,IAAI,WAAW,CAAC,sBAAsB,EAAE;gBAC7D,OAAO,CACL,eAAC,KAAK,oBACA,UAAU,IACd,SAAS,EAAC,uBAAuB,EACjC,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,WAAW,CAAC,SAAS,IAC1B,CACH,CAAC;aACH;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/components/Audio/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import clsx from 'clsx';
|
|
3
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
4
|
-
import { useCall, useCallStateHooks, useI18n, } from '@stream-io/video-react-bindings';
|
|
5
|
-
import { SfuModels } from '@stream-io/video-client';
|
|
6
|
-
import { ParticipantView, useParticipantViewContext } from '../ParticipantView';
|
|
7
|
-
import { ParticipantsAudio } from '../Audio';
|
|
8
|
-
import { usePaginatedLayoutSortPreset } from './hooks';
|
|
9
|
-
export const LivestreamLayout = (props) => {
|
|
10
|
-
var _a, _b, _c, _d, _e;
|
|
11
|
-
const { useParticipants, useRemoteParticipants, useHasOngoingScreenShare } = useCallStateHooks();
|
|
12
|
-
const call = useCall();
|
|
13
|
-
const [currentSpeaker, ...otherParticipants] = useParticipants();
|
|
14
|
-
const remoteParticipants = useRemoteParticipants();
|
|
15
|
-
const hasOngoingScreenShare = useHasOngoingScreenShare();
|
|
16
|
-
const presenter = hasOngoingScreenShare
|
|
17
|
-
? hasScreenShare(currentSpeaker) && currentSpeaker
|
|
18
|
-
: otherParticipants.find(hasScreenShare);
|
|
19
|
-
usePaginatedLayoutSortPreset(call);
|
|
20
|
-
const Overlay = (_jsx(ParticipantOverlay, { showParticipantCount: props.showParticipantCount, showDuration: props.showDuration, showLiveBadge: props.showLiveBadge, showSpeakerName: props.showSpeakerName }));
|
|
21
|
-
const { floatingParticipantProps } = props;
|
|
22
|
-
const FloatingParticipantOverlay = hasOngoingScreenShare && (_jsx(ParticipantOverlay
|
|
23
|
-
// these elements aren't needed for the video feed
|
|
24
|
-
, {
|
|
25
|
-
// these elements aren't needed for the video feed
|
|
26
|
-
showParticipantCount: (_a = floatingParticipantProps === null || floatingParticipantProps === void 0 ? void 0 : floatingParticipantProps.showParticipantCount) !== null && _a !== void 0 ? _a : false, showDuration: (_b = floatingParticipantProps === null || floatingParticipantProps === void 0 ? void 0 : floatingParticipantProps.showDuration) !== null && _b !== void 0 ? _b : false, showLiveBadge: (_c = floatingParticipantProps === null || floatingParticipantProps === void 0 ? void 0 : floatingParticipantProps.showLiveBadge) !== null && _c !== void 0 ? _c : false, showSpeakerName: (_d = floatingParticipantProps === null || floatingParticipantProps === void 0 ? void 0 : floatingParticipantProps.showSpeakerName) !== null && _d !== void 0 ? _d : true }));
|
|
27
|
-
return (_jsxs("div", Object.assign({ className: "str-video__livestream-layout__wrapper" }, { children: [_jsx(ParticipantsAudio, { participants: remoteParticipants }), hasOngoingScreenShare && presenter && (_jsx(ParticipantView, { className: "str-video__livestream-layout__screen-share", participant: presenter, ParticipantViewUI: Overlay, trackType: "screenShareTrack", muteAudio // audio is rendered by ParticipantsAudio
|
|
28
|
-
: true })), currentSpeaker && (_jsx(ParticipantView, { className: clsx(hasOngoingScreenShare &&
|
|
29
|
-
clsx('str-video__livestream-layout__floating-participant', `str-video__livestream-layout__floating-participant--${(_e = floatingParticipantProps === null || floatingParticipantProps === void 0 ? void 0 : floatingParticipantProps.position) !== null && _e !== void 0 ? _e : 'top-right'}`)), participant: currentSpeaker, ParticipantViewUI: FloatingParticipantOverlay || Overlay, muteAudio // audio is rendered by ParticipantsAudio
|
|
30
|
-
: true }))] })));
|
|
31
|
-
};
|
|
32
|
-
const hasScreenShare = (p) => !!(p === null || p === void 0 ? void 0 : p.publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE));
|
|
33
|
-
const ParticipantOverlay = (props) => {
|
|
34
|
-
const { enableFullScreen = true, showParticipantCount = true, showDuration = true, showLiveBadge = true, showSpeakerName = false, } = props;
|
|
35
|
-
const { participant } = useParticipantViewContext();
|
|
36
|
-
const { useParticipantCount } = useCallStateHooks();
|
|
37
|
-
const participantCount = useParticipantCount();
|
|
38
|
-
const duration = useUpdateCallDuration();
|
|
39
|
-
const toggleFullScreen = useToggleFullScreen();
|
|
40
|
-
const { t } = useI18n();
|
|
41
|
-
return (_jsx("div", Object.assign({ className: "str-video__livestream-layout__overlay" }, { children: _jsxs("div", Object.assign({ className: "str-video__livestream-layout__overlay__bar" }, { children: [showLiveBadge && (_jsx("span", Object.assign({ className: "str-video__livestream-layout__live-badge" }, { children: t('Live') }))), showParticipantCount && (_jsx("span", Object.assign({ className: "str-video__livestream-layout__viewers-count" }, { children: participantCount }))), showSpeakerName && (_jsx("span", Object.assign({ className: "str-video__livestream-layout__speaker-name", title: participant.name || participant.userId || '' }, { children: participant.name || participant.userId || '' }))), showDuration && (_jsx("span", Object.assign({ className: "str-video__livestream-layout__duration" }, { children: formatDuration(duration) }))), enableFullScreen && (_jsx("span", { className: "str-video__livestream-layout__go-fullscreen", onClick: toggleFullScreen }))] })) })));
|
|
42
|
-
};
|
|
43
|
-
const useUpdateCallDuration = () => {
|
|
44
|
-
const { useIsCallLive, useCallSession } = useCallStateHooks();
|
|
45
|
-
const isCallLive = useIsCallLive();
|
|
46
|
-
const session = useCallSession();
|
|
47
|
-
const [duration, setDuration] = useState(() => {
|
|
48
|
-
if (!session || !session.live_started_at)
|
|
49
|
-
return 0;
|
|
50
|
-
const liveStartTime = new Date(session.live_started_at);
|
|
51
|
-
const now = new Date();
|
|
52
|
-
return Math.floor((now.getTime() - liveStartTime.getTime()) / 1000);
|
|
53
|
-
});
|
|
54
|
-
useEffect(() => {
|
|
55
|
-
if (!isCallLive)
|
|
56
|
-
return;
|
|
57
|
-
const interval = setInterval(() => {
|
|
58
|
-
setDuration((d) => d + 1);
|
|
59
|
-
}, 1000);
|
|
60
|
-
return () => {
|
|
61
|
-
clearInterval(interval);
|
|
62
|
-
};
|
|
63
|
-
}, [isCallLive]);
|
|
64
|
-
return duration;
|
|
65
|
-
};
|
|
66
|
-
const useToggleFullScreen = () => {
|
|
67
|
-
const { participantViewElement } = useParticipantViewContext();
|
|
68
|
-
const [isFullscreen, setIsFullscreen] = useState(false);
|
|
69
|
-
return useCallback(() => {
|
|
70
|
-
if (isFullscreen) {
|
|
71
|
-
document.exitFullscreen().then(() => {
|
|
72
|
-
setIsFullscreen(false);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
participantViewElement === null || participantViewElement === void 0 ? void 0 : participantViewElement.requestFullscreen().then(() => {
|
|
77
|
-
setIsFullscreen(true);
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
}, [isFullscreen, participantViewElement]);
|
|
81
|
-
};
|
|
82
|
-
const formatDuration = (durationInMs) => {
|
|
83
|
-
const days = Math.floor(durationInMs / 86400);
|
|
84
|
-
const hours = Math.floor(durationInMs / 3600);
|
|
85
|
-
const minutes = Math.floor((durationInMs % 3600) / 60);
|
|
86
|
-
const seconds = durationInMs % 60;
|
|
87
|
-
return `${days ? days + ' ' : ''}${hours ? hours + ':' : ''}${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
|
|
88
|
-
};
|
|
89
|
-
//# sourceMappingURL=LivestreamLayout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LivestreamLayout.js","sourceRoot":"","sources":["../../../../../src/core/components/CallLayout/LivestreamLayout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useMemo, useState } from 'react';
|
|
3
|
-
import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
|
|
4
|
-
import clsx from 'clsx';
|
|
5
|
-
import { DefaultParticipantViewUI, ParticipantView, } from '../ParticipantView';
|
|
6
|
-
import { ParticipantsAudio } from '../Audio';
|
|
7
|
-
import { IconButton } from '../../../components';
|
|
8
|
-
import { chunk } from '../../../utilities';
|
|
9
|
-
import { usePaginatedLayoutSortPreset } from './hooks';
|
|
10
|
-
const GROUP_SIZE = 16;
|
|
11
|
-
const PaginatedGridLayoutGroup = ({ group, VideoPlaceholder, ParticipantViewUI, }) => {
|
|
12
|
-
return (_jsx("div", Object.assign({ className: clsx('str-video__paginated-grid-layout__group', {
|
|
13
|
-
'str-video__paginated-grid-layout--one': group.length === 1,
|
|
14
|
-
'str-video__paginated-grid-layout--two-four': group.length >= 2 && group.length <= 4,
|
|
15
|
-
'str-video__paginated-grid-layout--five-nine': group.length >= 5 && group.length <= 9,
|
|
16
|
-
}) }, { children: group.map((participant) => (_jsx(ParticipantView, { participant: participant, muteAudio: true, VideoPlaceholder: VideoPlaceholder, ParticipantViewUI: ParticipantViewUI }, participant.sessionId))) })));
|
|
17
|
-
};
|
|
18
|
-
export const PaginatedGridLayout = ({ groupSize = GROUP_SIZE, excludeLocalParticipant = false, pageArrowsVisible = true, VideoPlaceholder, ParticipantViewUI = DefaultParticipantViewUI, }) => {
|
|
19
|
-
const [page, setPage] = useState(0);
|
|
20
|
-
const [paginatedGridLayoutWrapperElement, setPaginatedGridLayoutWrapperElement,] = useState(null);
|
|
21
|
-
const call = useCall();
|
|
22
|
-
const { useParticipants, useRemoteParticipants } = useCallStateHooks();
|
|
23
|
-
const participants = useParticipants();
|
|
24
|
-
// used to render audio elements
|
|
25
|
-
const remoteParticipants = useRemoteParticipants();
|
|
26
|
-
usePaginatedLayoutSortPreset(call);
|
|
27
|
-
useEffect(() => {
|
|
28
|
-
if (!paginatedGridLayoutWrapperElement || !call)
|
|
29
|
-
return;
|
|
30
|
-
const cleanup = call.setViewport(paginatedGridLayoutWrapperElement);
|
|
31
|
-
return () => cleanup();
|
|
32
|
-
}, [paginatedGridLayoutWrapperElement, call]);
|
|
33
|
-
// only used to render video elements
|
|
34
|
-
const participantGroups = useMemo(() => chunk(excludeLocalParticipant ? remoteParticipants : participants, groupSize), [excludeLocalParticipant, remoteParticipants, participants, groupSize]);
|
|
35
|
-
const pageCount = participantGroups.length;
|
|
36
|
-
// update page when page count is reduced and selected page no longer exists
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
if (page > pageCount - 1) {
|
|
39
|
-
setPage(Math.max(0, pageCount - 1));
|
|
40
|
-
}
|
|
41
|
-
}, [page, pageCount]);
|
|
42
|
-
const selectedGroup = participantGroups[page];
|
|
43
|
-
if (!call)
|
|
44
|
-
return null;
|
|
45
|
-
return (_jsxs("div", Object.assign({ className: "str-video__paginated-grid-layout__wrapper", ref: setPaginatedGridLayoutWrapperElement }, { children: [_jsx(ParticipantsAudio, { participants: remoteParticipants }), _jsxs("div", Object.assign({ className: "str-video__paginated-grid-layout" }, { children: [pageArrowsVisible && pageCount > 1 && (_jsx(IconButton, { icon: "caret-left", disabled: page === 0, onClick: () => setPage((currentPage) => Math.max(0, currentPage - 1)) })), selectedGroup && (_jsx(PaginatedGridLayoutGroup, { group: participantGroups[page], VideoPlaceholder: VideoPlaceholder, ParticipantViewUI: ParticipantViewUI })), pageArrowsVisible && pageCount > 1 && (_jsx(IconButton, { disabled: page === pageCount - 1, icon: "caret-right", onClick: () => setPage((currentPage) => Math.min(pageCount - 1, currentPage + 1)) }))] }))] })));
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=PaginatedGridLayout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PaginatedGridLayout.js","sourceRoot":"","sources":["../../../../../src/core/components/CallLayout/PaginatedGridLayout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useState } from 'react';
|
|
3
|
-
import clsx from 'clsx';
|
|
4
|
-
import { SfuModels } from '@stream-io/video-client';
|
|
5
|
-
import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
|
|
6
|
-
import { DefaultParticipantViewUI, ParticipantView, } from '../ParticipantView';
|
|
7
|
-
import { IconButton } from '../../../components';
|
|
8
|
-
import { useHorizontalScrollPosition, useVerticalScrollPosition, } from '../../../hooks';
|
|
9
|
-
import { useSpeakerLayoutSortPreset } from './hooks';
|
|
10
|
-
import { useCalculateHardLimit } from '../../hooks/useCalculateHardLimit';
|
|
11
|
-
import { ParticipantsAudio } from '../Audio';
|
|
12
|
-
const DefaultParticipantViewUIBar = () => (_jsx(DefaultParticipantViewUI, { menuPlacement: "top-end" }));
|
|
13
|
-
const DefaultParticipantViewUISpotlight = () => _jsx(DefaultParticipantViewUI, {});
|
|
14
|
-
export const SpeakerLayout = ({ ParticipantViewUIBar = DefaultParticipantViewUIBar, ParticipantViewUISpotlight = DefaultParticipantViewUISpotlight, VideoPlaceholder, participantsBarPosition = 'bottom', participantsBarLimit, }) => {
|
|
15
|
-
const call = useCall();
|
|
16
|
-
const { useParticipants, useRemoteParticipants } = useCallStateHooks();
|
|
17
|
-
const [participantInSpotlight, ...otherParticipants] = useParticipants();
|
|
18
|
-
const remoteParticipants = useRemoteParticipants();
|
|
19
|
-
const [participantsBarWrapperElement, setParticipantsBarWrapperElement] = useState(null);
|
|
20
|
-
const [participantsBarElement, setParticipantsBarElement] = useState(null);
|
|
21
|
-
const [buttonsWrapperElement, setButtonsWrapperElement] = useState(null);
|
|
22
|
-
const isSpeakerScreenSharing = hasScreenShare(participantInSpotlight);
|
|
23
|
-
const hardLimit = useCalculateHardLimit(buttonsWrapperElement, participantsBarElement, participantsBarLimit);
|
|
24
|
-
const isVertical = participantsBarPosition === 'left' || participantsBarPosition === 'right';
|
|
25
|
-
const isHorizontal = participantsBarPosition === 'top' || participantsBarPosition === 'bottom';
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
if (!participantsBarWrapperElement || !call)
|
|
28
|
-
return;
|
|
29
|
-
const cleanup = call.setViewport(participantsBarWrapperElement);
|
|
30
|
-
return () => cleanup();
|
|
31
|
-
}, [participantsBarWrapperElement, call]);
|
|
32
|
-
const isOneOnOneCall = otherParticipants.length === 1;
|
|
33
|
-
useSpeakerLayoutSortPreset(call, isOneOnOneCall);
|
|
34
|
-
let participantsWithAppliedLimit = otherParticipants;
|
|
35
|
-
const hardLimitToApply = isVertical
|
|
36
|
-
? hardLimit.vertical
|
|
37
|
-
: hardLimit.horizontal;
|
|
38
|
-
if (typeof participantsBarLimit !== 'undefined' &&
|
|
39
|
-
hardLimitToApply !== null) {
|
|
40
|
-
participantsWithAppliedLimit = otherParticipants.slice(0,
|
|
41
|
-
// subtract 1 if speaker is sharing screen as
|
|
42
|
-
// that one is rendered independently from otherParticipants array
|
|
43
|
-
hardLimitToApply - (isSpeakerScreenSharing ? 1 : 0));
|
|
44
|
-
}
|
|
45
|
-
if (!call)
|
|
46
|
-
return null;
|
|
47
|
-
return (_jsxs("div", Object.assign({ className: "str-video__speaker-layout__wrapper" }, { children: [_jsx(ParticipantsAudio, { participants: remoteParticipants }), _jsxs("div", Object.assign({ className: clsx('str-video__speaker-layout', participantsBarPosition &&
|
|
48
|
-
`str-video__speaker-layout--variant-${participantsBarPosition}`) }, { children: [_jsx("div", Object.assign({ className: "str-video__speaker-layout__spotlight" }, { children: participantInSpotlight && (_jsx(ParticipantView, { participant: participantInSpotlight, muteAudio: true, trackType: isSpeakerScreenSharing ? 'screenShareTrack' : 'videoTrack', ParticipantViewUI: ParticipantViewUISpotlight, VideoPlaceholder: VideoPlaceholder })) })), participantsWithAppliedLimit.length > 0 && participantsBarPosition && (_jsxs("div", Object.assign({ ref: setButtonsWrapperElement, className: "str-video__speaker-layout__participants-bar-buttons-wrapper" }, { children: [_jsx("div", Object.assign({ className: "str-video__speaker-layout__participants-bar-wrapper", ref: setParticipantsBarWrapperElement }, { children: _jsxs("div", Object.assign({ ref: setParticipantsBarElement, className: "str-video__speaker-layout__participants-bar" }, { children: [isSpeakerScreenSharing && (_jsx("div", Object.assign({ className: "str-video__speaker-layout__participant-tile" }, { children: _jsx(ParticipantView, { participant: participantInSpotlight, ParticipantViewUI: ParticipantViewUIBar, VideoPlaceholder: VideoPlaceholder, muteAudio: true }) }), participantInSpotlight.sessionId)), participantsWithAppliedLimit.map((participant) => (_jsx("div", Object.assign({ className: "str-video__speaker-layout__participant-tile" }, { children: _jsx(ParticipantView, { participant: participant, ParticipantViewUI: ParticipantViewUIBar, VideoPlaceholder: VideoPlaceholder, muteAudio: true }) }), participant.sessionId)))] })) })), isVertical && (_jsx(VerticalScrollButtons, { scrollWrapper: participantsBarWrapperElement })), isHorizontal && (_jsx(HorizontalScrollButtons, { scrollWrapper: participantsBarWrapperElement }))] })))] }))] })));
|
|
49
|
-
};
|
|
50
|
-
const HorizontalScrollButtons = ({ scrollWrapper, }) => {
|
|
51
|
-
const scrollPosition = useHorizontalScrollPosition(scrollWrapper);
|
|
52
|
-
const scrollStartClickHandler = () => {
|
|
53
|
-
scrollWrapper === null || scrollWrapper === void 0 ? void 0 : scrollWrapper.scrollBy({ left: -150, behavior: 'smooth' });
|
|
54
|
-
};
|
|
55
|
-
const scrollEndClickHandler = () => {
|
|
56
|
-
scrollWrapper === null || scrollWrapper === void 0 ? void 0 : scrollWrapper.scrollBy({ left: 150, behavior: 'smooth' });
|
|
57
|
-
};
|
|
58
|
-
return (_jsxs(_Fragment, { children: [scrollPosition && scrollPosition !== 'start' && (_jsx(IconButton, { onClick: scrollStartClickHandler, icon: "caret-left", className: "str-video__speaker-layout__participants-bar--button-left" })), scrollPosition && scrollPosition !== 'end' && (_jsx(IconButton, { onClick: scrollEndClickHandler, icon: "caret-right", className: "str-video__speaker-layout__participants-bar--button-right" }))] }));
|
|
59
|
-
};
|
|
60
|
-
const VerticalScrollButtons = ({ scrollWrapper, }) => {
|
|
61
|
-
const scrollPosition = useVerticalScrollPosition(scrollWrapper);
|
|
62
|
-
const scrollTopClickHandler = () => {
|
|
63
|
-
scrollWrapper === null || scrollWrapper === void 0 ? void 0 : scrollWrapper.scrollBy({ top: -150, behavior: 'smooth' });
|
|
64
|
-
};
|
|
65
|
-
const scrollBottomClickHandler = () => {
|
|
66
|
-
scrollWrapper === null || scrollWrapper === void 0 ? void 0 : scrollWrapper.scrollBy({ top: 150, behavior: 'smooth' });
|
|
67
|
-
};
|
|
68
|
-
return (_jsxs(_Fragment, { children: [scrollPosition && scrollPosition !== 'top' && (_jsx(IconButton, { onClick: scrollTopClickHandler, icon: "caret-up", className: "str-video__speaker-layout__participants-bar--button-top" })), scrollPosition && scrollPosition !== 'bottom' && (_jsx(IconButton, { onClick: scrollBottomClickHandler, icon: "caret-down", className: "str-video__speaker-layout__participants-bar--button-bottom" }))] }));
|
|
69
|
-
};
|
|
70
|
-
const hasScreenShare = (p) => !!(p === null || p === void 0 ? void 0 : p.publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE));
|
|
71
|
-
//# sourceMappingURL=SpeakerLayout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpeakerLayout.js","sourceRoot":"","sources":["../../../../../src/core/components/CallLayout/SpeakerLayout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { useEffect } from 'react';
|
|
2
|
-
import { CallTypes, combineComparators, defaultSortPreset, paginatedLayoutSortPreset, screenSharing, speakerLayoutSortPreset, } from '@stream-io/video-client';
|
|
3
|
-
export const usePaginatedLayoutSortPreset = (call) => {
|
|
4
|
-
useEffect(() => {
|
|
5
|
-
if (!call)
|
|
6
|
-
return;
|
|
7
|
-
call.setSortParticipantsBy(paginatedLayoutSortPreset);
|
|
8
|
-
return () => {
|
|
9
|
-
resetSortPreset(call);
|
|
10
|
-
};
|
|
11
|
-
}, [call]);
|
|
12
|
-
};
|
|
13
|
-
export const useSpeakerLayoutSortPreset = (call, isOneOnOneCall) => {
|
|
14
|
-
useEffect(() => {
|
|
15
|
-
if (!call)
|
|
16
|
-
return;
|
|
17
|
-
// always show the remote participant in the spotlight
|
|
18
|
-
if (isOneOnOneCall) {
|
|
19
|
-
call.setSortParticipantsBy(combineComparators(screenSharing, loggedIn));
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
call.setSortParticipantsBy(speakerLayoutSortPreset);
|
|
23
|
-
}
|
|
24
|
-
return () => {
|
|
25
|
-
resetSortPreset(call);
|
|
26
|
-
};
|
|
27
|
-
}, [call, isOneOnOneCall]);
|
|
28
|
-
};
|
|
29
|
-
const resetSortPreset = (call) => {
|
|
30
|
-
// reset the sorting to the default for the call type
|
|
31
|
-
const callConfig = CallTypes.get(call.type);
|
|
32
|
-
call.setSortParticipantsBy(callConfig.options.sortParticipantsBy || defaultSortPreset);
|
|
33
|
-
};
|
|
34
|
-
const loggedIn = (a, b) => {
|
|
35
|
-
if (a.isLocalParticipant)
|
|
36
|
-
return 1;
|
|
37
|
-
if (b.isLocalParticipant)
|
|
38
|
-
return -1;
|
|
39
|
-
return 0;
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../../src/core/components/CallLayout/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAEL,SAAS,EACT,kBAAkB,EAElB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,IAAsB,EAAE,EAAE;IACrE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,CAAC;QACtD,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,IAAsB,EACtB,cAAuB,EACvB,EAAE;IACF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,sDAAsD;QACtD,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;SACzE;aAAM;YACL,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;SACrD;QACD,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAU,EAAE,EAAE;IACrC,qDAAqD;IACrD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,qBAAqB,CACxB,UAAU,CAAC,OAAO,CAAC,kBAAkB,IAAI,iBAAiB,CAC3D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAuC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IAC5D,IAAI,CAAC,CAAC,kBAAkB;QAAE,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,CAAC,kBAAkB;QAAE,OAAO,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/components/CallLayout/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef } from 'react';
|
|
3
|
-
import { SfuModels } from '@stream-io/video-client';
|
|
4
|
-
import { useCall } from '@stream-io/video-react-bindings';
|
|
5
|
-
import { clsx } from 'clsx';
|
|
6
|
-
import { Icon, IconButton, MenuToggle, Notification, ParticipantActionsContextMenu, } from '../../../components';
|
|
7
|
-
import { Reaction } from '../../../components/Reaction';
|
|
8
|
-
import { DebugParticipantPublishQuality } from '../../../components/Debug/DebugParticipantPublishQuality';
|
|
9
|
-
import { DebugStatsView } from '../../../components/Debug/DebugStatsView';
|
|
10
|
-
import { useIsDebugMode } from '../../../components/Debug/useIsDebugMode';
|
|
11
|
-
import { useParticipantViewContext } from './ParticipantView';
|
|
12
|
-
const ToggleButton = forwardRef((props, ref) => {
|
|
13
|
-
return _jsx(IconButton, { enabled: props.menuShown, icon: "ellipsis", ref: ref });
|
|
14
|
-
});
|
|
15
|
-
export const DefaultScreenShareOverlay = () => {
|
|
16
|
-
const call = useCall();
|
|
17
|
-
const stopScreenShare = () => {
|
|
18
|
-
call === null || call === void 0 ? void 0 : call.stopPublish(SfuModels.TrackType.SCREEN_SHARE).catch(console.error);
|
|
19
|
-
};
|
|
20
|
-
return (_jsxs("div", Object.assign({ className: "str-video__screen-share-overlay" }, { children: [_jsx(Icon, { icon: "screen-share-off" }), _jsx("span", Object.assign({ className: "str-video__screen-share-overlay__title" }, { children: "You are presenting your screen" })), _jsxs("button", Object.assign({ onClick: stopScreenShare, className: "str-video__screen-share-overlay__button" }, { children: [_jsx(Icon, { icon: "close" }), " Stop Screen Sharing"] }))] })));
|
|
21
|
-
};
|
|
22
|
-
export const DefaultParticipantViewUI = ({ indicatorsVisible = true, menuPlacement = 'bottom-end', showMenuButton = true, }) => {
|
|
23
|
-
const { participant, participantViewElement, trackType, videoElement } = useParticipantViewContext();
|
|
24
|
-
const { publishedTracks } = participant;
|
|
25
|
-
const hasScreenShare = publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE);
|
|
26
|
-
if (participant.isLocalParticipant &&
|
|
27
|
-
hasScreenShare &&
|
|
28
|
-
trackType === 'screenShareTrack') {
|
|
29
|
-
return (_jsxs(_Fragment, { children: [_jsx(DefaultScreenShareOverlay, {}), _jsx(ParticipantDetails, { indicatorsVisible: indicatorsVisible })] }));
|
|
30
|
-
}
|
|
31
|
-
return (_jsxs(_Fragment, { children: [showMenuButton && (_jsx(MenuToggle, Object.assign({ strategy: "fixed", placement: menuPlacement, ToggleButton: ToggleButton }, { children: _jsx(ParticipantActionsContextMenu, { participantViewElement: participantViewElement, participant: participant, videoElement: videoElement }) }))), _jsx(Reaction, { participant: participant }), _jsx(ParticipantDetails, { indicatorsVisible: indicatorsVisible })] }));
|
|
32
|
-
};
|
|
33
|
-
export const ParticipantDetails = ({ indicatorsVisible = true, }) => {
|
|
34
|
-
const { participant } = useParticipantViewContext();
|
|
35
|
-
const { isDominantSpeaker, isLocalParticipant, connectionQuality, publishedTracks, pin, sessionId, name, userId, videoStream, } = participant;
|
|
36
|
-
const call = useCall();
|
|
37
|
-
const connectionQualityAsString = !!connectionQuality &&
|
|
38
|
-
SfuModels.ConnectionQuality[connectionQuality].toLowerCase();
|
|
39
|
-
const hasAudio = publishedTracks.includes(SfuModels.TrackType.AUDIO);
|
|
40
|
-
const hasVideo = publishedTracks.includes(SfuModels.TrackType.VIDEO);
|
|
41
|
-
const canUnpin = !!pin && pin.isLocalPin;
|
|
42
|
-
const isDebugMode = useIsDebugMode();
|
|
43
|
-
return (_jsxs("div", Object.assign({ className: "str-video__participant-details" }, { children: [_jsxs("span", Object.assign({ className: "str-video__participant-details__name" }, { children: [name || userId, indicatorsVisible && isDominantSpeaker && (_jsx("span", { className: "str-video__participant-details__name--dominant_speaker", title: "Dominant speaker" })), indicatorsVisible && (_jsx(Notification, Object.assign({ isVisible: isLocalParticipant &&
|
|
44
|
-
connectionQuality === SfuModels.ConnectionQuality.POOR, message: "Poor connection quality. Please check your internet connection." }, { children: connectionQualityAsString && (_jsx("span", { className: clsx('str-video__participant-details__connection-quality', `str-video__participant-details__connection-quality--${connectionQualityAsString}`), title: connectionQualityAsString })) }))), indicatorsVisible && !hasAudio && (_jsx("span", { className: "str-video__participant-details__name--audio-muted" })), indicatorsVisible && !hasVideo && (_jsx("span", { className: "str-video__participant-details__name--video-muted" })), indicatorsVisible && canUnpin && (
|
|
45
|
-
// TODO: remove this monstrosity once we have a proper design
|
|
46
|
-
_jsx("span", { title: "Unpin", onClick: () => call === null || call === void 0 ? void 0 : call.unpin(sessionId), style: { cursor: 'pointer' }, className: "str-video__participant-details__name--pinned" }))] })), isDebugMode && (_jsxs(_Fragment, { children: [_jsx(DebugParticipantPublishQuality, { participant: participant, call: call }), _jsx(DebugStatsView, { call: call, sessionId: sessionId, userId: userId, mediaStream: videoStream })] }))] })));
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=DefaultParticipantViewUI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultParticipantViewUI.js","sourceRoot":"","sources":["../../../../../src/core/components/ParticipantView/DefaultParticipantViewUI.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, forwardRef, useContext, useMemo, useState, } from 'react';
|
|
3
|
-
import clsx from 'clsx';
|
|
4
|
-
import { SfuModels, } from '@stream-io/video-client';
|
|
5
|
-
import { Audio } from '../Audio';
|
|
6
|
-
import { Video } from '../Video';
|
|
7
|
-
import { useTrackElementVisibility } from '../../hooks';
|
|
8
|
-
import { DefaultParticipantViewUI } from './DefaultParticipantViewUI';
|
|
9
|
-
import { applyElementToRef, isComponentType } from '../../../utilities';
|
|
10
|
-
const ParticipantViewContext = createContext(undefined);
|
|
11
|
-
export const useParticipantViewContext = () => useContext(ParticipantViewContext);
|
|
12
|
-
export const ParticipantView = forwardRef(({ participant, trackType = 'videoTrack', muteAudio, refs: { setVideoElement, setVideoPlaceholderElement } = {}, className, VideoPlaceholder, ParticipantViewUI = DefaultParticipantViewUI, }, ref) => {
|
|
13
|
-
const { isLocalParticipant, isSpeaking, isDominantSpeaker, publishedTracks, sessionId, } = participant;
|
|
14
|
-
const hasAudio = publishedTracks.includes(SfuModels.TrackType.AUDIO);
|
|
15
|
-
const hasVideo = publishedTracks.includes(SfuModels.TrackType.VIDEO);
|
|
16
|
-
const hasScreenShareAudio = publishedTracks.includes(SfuModels.TrackType.SCREEN_SHARE_AUDIO);
|
|
17
|
-
const [trackedElement, setTrackedElement] = useState(null);
|
|
18
|
-
const [contextVideoElement, setContextVideoElement] = useState(null);
|
|
19
|
-
const [contextVideoPlaceholderElement, setContextVideoPlaceholderElement] = useState(null);
|
|
20
|
-
// TODO: allow to pass custom ViewportTracker instance from props
|
|
21
|
-
useTrackElementVisibility({
|
|
22
|
-
sessionId,
|
|
23
|
-
trackedElement,
|
|
24
|
-
trackType,
|
|
25
|
-
});
|
|
26
|
-
const participantViewContextValue = useMemo(() => ({
|
|
27
|
-
participant,
|
|
28
|
-
participantViewElement: trackedElement,
|
|
29
|
-
videoElement: contextVideoElement,
|
|
30
|
-
videoPlaceholderElement: contextVideoPlaceholderElement,
|
|
31
|
-
trackType,
|
|
32
|
-
}), [
|
|
33
|
-
contextVideoElement,
|
|
34
|
-
contextVideoPlaceholderElement,
|
|
35
|
-
participant,
|
|
36
|
-
trackedElement,
|
|
37
|
-
trackType,
|
|
38
|
-
]);
|
|
39
|
-
const videoRefs = useMemo(() => ({
|
|
40
|
-
setVideoElement: (element) => {
|
|
41
|
-
setVideoElement === null || setVideoElement === void 0 ? void 0 : setVideoElement(element);
|
|
42
|
-
setContextVideoElement(element);
|
|
43
|
-
},
|
|
44
|
-
setVideoPlaceholderElement: (element) => {
|
|
45
|
-
setVideoPlaceholderElement === null || setVideoPlaceholderElement === void 0 ? void 0 : setVideoPlaceholderElement(element);
|
|
46
|
-
setContextVideoPlaceholderElement(element);
|
|
47
|
-
},
|
|
48
|
-
}), [setVideoElement, setVideoPlaceholderElement]);
|
|
49
|
-
return (_jsx("div", Object.assign({ "data-testid": "participant-view", ref: (element) => {
|
|
50
|
-
applyElementToRef(ref, element);
|
|
51
|
-
setTrackedElement(element);
|
|
52
|
-
}, className: clsx('str-video__participant-view', isDominantSpeaker && 'str-video__participant-view--dominant-speaker', isSpeaking && 'str-video__participant-view--speaking', !hasVideo && 'str-video__participant-view--no-video', !hasAudio && 'str-video__participant-view--no-audio', className) }, { children: _jsxs(ParticipantViewContext.Provider, Object.assign({ value: participantViewContextValue }, { children: [!isLocalParticipant && !muteAudio && (_jsxs(_Fragment, { children: [hasAudio && (_jsx(Audio, { participant: participant, trackType: "audioTrack" })), hasScreenShareAudio && (_jsx(Audio, { participant: participant, trackType: "screenShareAudioTrack" }))] })), _jsx(Video, { VideoPlaceholder: VideoPlaceholder, participant: participant, trackType: trackType, refs: videoRefs, autoPlay: true }), isComponentType(ParticipantViewUI) ? (_jsx(ParticipantViewUI, {})) : (ParticipantViewUI)] })) })));
|
|
53
|
-
});
|
|
54
|
-
//# sourceMappingURL=ParticipantView.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ParticipantView.js","sourceRoot":"","sources":["../../../../../src/core/components/ParticipantView/ParticipantView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/components/ParticipantView/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { StreamCallProvider } from '@stream-io/video-react-bindings';
|
|
3
|
-
import { MediaDevicesProvider, } from '../../contexts';
|
|
4
|
-
export const StreamCall = ({ children, call, mediaDevicesProviderProps, }) => {
|
|
5
|
-
return (_jsx(StreamCallProvider, Object.assign({ call: call }, { children: _jsx(MediaDevicesProvider, Object.assign({}, mediaDevicesProviderProps, { children: children })) })));
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=StreamCall.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StreamCall.js","sourceRoot":"","sources":["../../../../../src/core/components/StreamCall/StreamCall.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EACL,oBAAoB,GAErB,MAAM,gBAAgB,CAAC;AAWxB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,QAAQ,EACR,IAAI,EACJ,yBAAyB,GACU,EAAE,EAAE;IACvC,OAAO,CACL,KAAC,kBAAkB,kBAAC,IAAI,EAAE,IAAI,gBAC5B,KAAC,oBAAoB,oBAAK,yBAAyB,cAChD,QAAQ,IACY,IACJ,CACtB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/components/StreamCall/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { StreamVideoProvider, } from '@stream-io/video-react-bindings';
|
|
3
|
-
import { translations } from '../../../translations';
|
|
4
|
-
export const StreamVideo = (props) => {
|
|
5
|
-
return (_jsx(StreamVideoProvider, Object.assign({ translationsOverrides: translations }, props)));
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=StreamVideo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StreamVideo.js","sourceRoot":"","sources":["../../../../../src/core/components/StreamVideo/StreamVideo.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAA0C,EAAE,EAAE;IACxE,OAAO,CACL,KAAC,mBAAmB,kBAAC,qBAAqB,EAAE,YAAY,IAAM,KAAK,EAAI,CACxE,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/components/StreamVideo/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|