@dcl/asset-packs 2.14.3 → 2.15.1
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/bin/index.js +2169 -616
- package/catalog.json +4 -4
- package/dist/actions.js +8 -8
- package/dist/admin-toolkit-ui/Button.d.ts +1 -1
- package/dist/admin-toolkit-ui/Button.js +2 -2
- package/dist/admin-toolkit-ui/Error.d.ts +2 -2
- package/dist/admin-toolkit-ui/Error.js +4 -4
- package/dist/admin-toolkit-ui/Header.js +1 -1
- package/dist/admin-toolkit-ui/Modal.d.ts +19 -0
- package/dist/admin-toolkit-ui/Modal.js +37 -0
- package/dist/admin-toolkit-ui/ModerationControl/UsersList.d.ts +3 -3
- package/dist/admin-toolkit-ui/ModerationControl/UsersList.js +14 -8
- package/dist/admin-toolkit-ui/ModerationControl/index.d.ts +4 -5
- package/dist/admin-toolkit-ui/ModerationControl/index.js +19 -11
- package/dist/admin-toolkit-ui/ModerationControl/styles/AddUserInputStyles.js +4 -4
- package/dist/admin-toolkit-ui/ModerationControl/styles/UsersListStyles.d.ts +2 -0
- package/dist/admin-toolkit-ui/ModerationControl/styles/UsersListStyles.js +13 -5
- package/dist/admin-toolkit-ui/RewardsControl.d.ts +2 -2
- package/dist/admin-toolkit-ui/RewardsControl.js +9 -5
- package/dist/admin-toolkit-ui/SmartItemsControl.d.ts +2 -2
- package/dist/admin-toolkit-ui/SmartItemsControl.js +6 -4
- package/dist/admin-toolkit-ui/TextAnnouncements.d.ts +2 -2
- package/dist/admin-toolkit-ui/TextAnnouncements.js +9 -5
- package/dist/admin-toolkit-ui/TextAnnouncementsControl.d.ts +3 -3
- package/dist/admin-toolkit-ui/TextAnnouncementsControl.js +15 -7
- package/dist/admin-toolkit-ui/VideoControl/DclCast/CompactDclCast.d.ts +11 -0
- package/dist/admin-toolkit-ui/VideoControl/DclCast/CompactDclCast.js +90 -0
- package/dist/admin-toolkit-ui/VideoControl/DclCast/DclCastInfo.d.ts +6 -4
- package/dist/admin-toolkit-ui/VideoControl/DclCast/DclCastInfo.js +71 -57
- package/dist/admin-toolkit-ui/VideoControl/DclCast/PresentationPanel.d.ts +10 -0
- package/dist/admin-toolkit-ui/VideoControl/DclCast/PresentationPanel.js +67 -0
- package/dist/admin-toolkit-ui/VideoControl/DclCast/SharePresentationModal.d.ts +6 -0
- package/dist/admin-toolkit-ui/VideoControl/DclCast/SharePresentationModal.js +74 -0
- package/dist/admin-toolkit-ui/VideoControl/DclCast/SpeakerShowcase.d.ts +11 -0
- package/dist/admin-toolkit-ui/VideoControl/DclCast/SpeakerShowcase.js +110 -0
- package/dist/admin-toolkit-ui/VideoControl/DclCast/index.d.ts +17 -3
- package/dist/admin-toolkit-ui/VideoControl/DclCast/index.js +208 -35
- package/dist/admin-toolkit-ui/VideoControl/DclCast/styles.d.ts +73 -1
- package/dist/admin-toolkit-ui/VideoControl/DclCast/styles.js +193 -3
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/ShowStreamKey.js +17 -13
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/index.d.ts +1 -1
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/index.js +8 -8
- package/dist/admin-toolkit-ui/VideoControl/VideoUrl.d.ts +2 -2
- package/dist/admin-toolkit-ui/VideoControl/VideoUrl.js +9 -9
- package/dist/admin-toolkit-ui/VideoControl/VolumeControl.d.ts +3 -2
- package/dist/admin-toolkit-ui/VideoControl/VolumeControl.js +8 -10
- package/dist/admin-toolkit-ui/VideoControl/api.d.ts +49 -0
- package/dist/admin-toolkit-ui/VideoControl/api.js +185 -1
- package/dist/admin-toolkit-ui/VideoControl/index.d.ts +16 -15
- package/dist/admin-toolkit-ui/VideoControl/index.js +57 -21
- package/dist/admin-toolkit-ui/VideoControl/utils.d.ts +2 -2
- package/dist/admin-toolkit-ui/VideoControl/utils.js +3 -3
- package/dist/admin-toolkit-ui/constants.d.ts +2 -3
- package/dist/admin-toolkit-ui/constants.js +4 -4
- package/dist/admin-toolkit-ui/fetch-utils.js +2 -2
- package/dist/admin-toolkit-ui/index.d.ts +4 -4
- package/dist/admin-toolkit-ui/index.js +40 -18
- package/dist/admin-toolkit-ui/types.d.ts +19 -0
- package/dist/admin-toolkit-ui/types.js +1 -1
- package/dist/admin.js +2 -2
- package/dist/bin/index.js +2169 -616
- package/dist/ui.js +4 -4
- package/package.json +5 -5
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { Color4 } from '@dcl/sdk/math';
|
|
2
2
|
import ReactEcs, { UiEntity, Input, Label } from '@dcl/react-ecs';
|
|
3
|
-
import {
|
|
4
|
-
import { createVideoPlayerControls, isVideoUrl } from './utils';
|
|
5
|
-
import { VideoControlVolume } from './VolumeControl';
|
|
3
|
+
import { openExternalUrl } from '~system/RestrictedActions';
|
|
6
4
|
import { Button } from '../Button';
|
|
7
5
|
import { Header } from '../Header';
|
|
8
|
-
import { openExternalUrl } from '~system/RestrictedActions';
|
|
9
6
|
import { LIVEKIT_STREAM_SRC } from '../../definitions';
|
|
10
|
-
import {
|
|
7
|
+
import { getContentUrl } from '../constants';
|
|
8
|
+
import { VideoControlVolume } from './VolumeControl';
|
|
9
|
+
import { createVideoPlayerControls, isVideoUrl } from './utils';
|
|
10
|
+
import { COLORS, ICONS } from '.';
|
|
11
11
|
const VIDEO_PLAYER_HELP_URL = 'https://docs.decentraland.org/creator/scene-editor/interactivity/video-screen';
|
|
12
|
-
export const
|
|
12
|
+
export const getHelpIcon = () => `${getContentUrl()}/admin_toolkit/assets/icons/help.png`;
|
|
13
13
|
export function VideoControlURL({ engine, video, entity, }) {
|
|
14
14
|
const [videoURL, setVideoURL] = ReactEcs.useState('');
|
|
15
15
|
ReactEcs.useEffect(() => {
|
|
16
|
-
const url = video?.src
|
|
16
|
+
const url = video?.src?.startsWith('livekit-video://') ? '' : video?.src;
|
|
17
17
|
setVideoURL(url ?? '');
|
|
18
18
|
}, [entity]);
|
|
19
19
|
const controls = createVideoPlayerControls(entity, engine);
|
|
@@ -28,7 +28,7 @@ export function VideoControlURL({ engine, video, entity, }) {
|
|
|
28
28
|
}, uiBackground: {
|
|
29
29
|
textureMode: 'stretch',
|
|
30
30
|
color: Color4.White(),
|
|
31
|
-
texture: { src:
|
|
31
|
+
texture: { src: getHelpIcon() },
|
|
32
32
|
} })),
|
|
33
33
|
ReactEcs.createElement(Label, { value: "Play videos by pasting an .m3u8 video URL below.", color: Color4.fromHexString('#A09BA8'), fontSize: 16 }),
|
|
34
34
|
ReactEcs.createElement(Label, { value: "<b>Video URL<b>", color: Color4.White(), fontSize: 16, uiTransform: {
|
|
@@ -118,4 +118,4 @@ export function VideoControlURL({ engine, video, entity, }) {
|
|
|
118
118
|
} })),
|
|
119
119
|
ReactEcs.createElement(VideoControlVolume, { engine: engine, entity: entity, video: video, label: "<b>Video Volume</b>" })));
|
|
120
120
|
}
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlkZW9VcmwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvVmlkZW9VcmwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDLE1BQU0scUJBQXFCLEdBQ3pCLCtFQUErRSxDQUFDO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLFdBQVcsc0NBQXNDLENBQUM7QUFFOUUsTUFBTSxVQUFVLGVBQWUsQ0FBQyxFQUM5QixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FLUDtJQUNDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0RCxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUN0QixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBRyxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7UUFDaEUsV0FBVyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2IsTUFBTSxRQUFRLEdBQUcseUJBQXlCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELE1BQU0sUUFBUSxHQUFHLEtBQUssSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELE9BQU8sQ0FDTCx1QkFBQyxRQUFRLElBQUMsV0FBVyxFQUFFLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQy9ELHVCQUFDLFFBQVEsSUFBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUU7WUFDdkUsdUJBQUMsTUFBTSxJQUNMLE9BQU8sRUFBRSxLQUFLLENBQUMsWUFBWSxFQUMzQixLQUFLLEVBQUMsV0FBVyxHQUNqQjtZQUNGLHVCQUFDLFFBQVEsSUFDUCxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLHFCQUFxQixFQUFFLENBQUMsRUFDbEUsV0FBVyxFQUFFO29CQUNYLEtBQUssRUFBRSxFQUFFO29CQUNULE1BQU0sRUFBRSxFQUFFO29CQUNWLFVBQVUsRUFBRSxRQUFRO2lCQUNyQixFQUNELFlBQVksRUFBRTtvQkFDWixXQUFXLEVBQUUsU0FBUztvQkFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUU7b0JBQ3JCLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUU7aUJBQzVCLEdBQ0QsQ0FDTztRQUNYLHVCQUFDLEtBQUssSUFDSixLQUFLLEVBQUMsa0RBQWtELEVBQ3hELEtBQUssRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUN0QyxRQUFRLEVBQUUsRUFBRSxHQUNaO1FBQ0YsdUJBQUMsS0FBSyxJQUNKLEtBQUssRUFBQyxpQkFBaUIsRUFDdkIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFDckIsUUFBUSxFQUFFLEVBQUUsRUFDWixXQUFXLEVBQUU7Z0JBQ1gsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO2FBQy9CLEdBQ0Q7UUFFRix1QkFBQyxLQUFLLElBQ0osUUFBUSxFQUFFLFdBQVcsRUFDckIsS0FBSyxFQUFFLFFBQVEsRUFDZixRQUFRLEVBQUUsRUFBRSxFQUNaLFNBQVMsRUFBQyxhQUFhLEVBQ3ZCLFdBQVcsRUFBQyxzQkFBc0IsRUFDbEMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFDbkUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUNsRSxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUN4RCxXQUFXLEVBQUU7Z0JBQ1gsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLFdBQVcsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUMzQixLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUsRUFBRTthQUNYLEdBQ0Q7UUFFRix1QkFBQyxRQUFRLElBQ1AsV0FBVyxFQUFFO2dCQUNYLEtBQUssRUFBRSxNQUFNO2dCQUNiLE1BQU0sRUFBRSxFQUFFO2dCQUNWLGFBQWEsRUFBRSxLQUFLO2dCQUNwQixjQUFjLEVBQUUsVUFBVTtnQkFDMUIsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTthQUNwQjtZQUVBLEtBQUssRUFBRSxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUN0Qyx1QkFBQyxNQUFNLElBQ0wsRUFBRSxFQUFDLGtDQUFrQyxFQUNyQyxLQUFLLEVBQUMsbUJBQW1CLEVBQ3pCLE9BQU8sRUFBQyxNQUFNLEVBQ2QsUUFBUSxFQUFFLEVBQUUsRUFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUNyQixXQUFXLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtvQkFDcEIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO2lCQUMvQixFQUNELFdBQVcsRUFBRSxHQUFHLEVBQUU7b0JBQ2hCLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsR0FDRCxDQUNIO1lBQ0EsQ0FBQyxDQUFDLFFBQVEsSUFBSSxRQUFRLEtBQUssS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQ3pDLHVCQUFDLE1BQU0sSUFDTCxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQy9CLEVBQUUsRUFBQyxrQ0FBa0MsRUFDckMsS0FBSyxFQUNILEtBQUssRUFBRSxHQUFHLElBQUksUUFBUSxLQUFLLEtBQUssQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxrQkFBa0I7b0JBQ3RFLENBQUMsQ0FBQyxlQUFlO29CQUNqQixDQUFDLENBQUMsaUJBQWlCLEVBRXZCLGNBQWMsRUFBRTtvQkFDZCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7aUJBQzlCLEVBQ0QsUUFBUSxFQUFFLEVBQUUsRUFDWixZQUFZLEVBQUU7b0JBQ1osS0FBSyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7aUJBQy9FLEVBQ0QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFDckIsV0FBVyxFQUFFLEdBQUcsRUFBRTtvQkFDaEIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxHQUNELENBQ0gsQ0FDUTtRQUVYLHVCQUFDLEtBQUssSUFDSixLQUFLLEVBQUMsdUJBQXVCLEVBQzdCLFFBQVEsRUFBRSxFQUFFLEVBQ1osS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFDckIsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQ3ZDO1FBRUYsdUJBQUMsUUFBUSxJQUNQLFdBQVcsRUFBRTtnQkFDWCxhQUFhLEVBQUUsS0FBSztnQkFDcEIsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTthQUN2QjtZQUVELHVCQUFDLE1BQU0sSUFDTCxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQ25CLEVBQUUsRUFBQyxvQkFBb0IsRUFDdkIsS0FBSyxFQUFDLGFBQWEsRUFDbkIsUUFBUSxFQUFFLEVBQUUsRUFDWixjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDekMsV0FBVyxFQUFFO29CQUNYLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7b0JBQ2pELE1BQU0sRUFBRSxFQUFFO29CQUNWLFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxRQUFRO29CQUNwQixjQUFjLEVBQUUsUUFBUTtvQkFDeEIsT0FBTyxFQUFFLENBQUM7aUJBQ1gsRUFDRCxJQUFJLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFDdkIsYUFBYSxFQUFFO29CQUNiLEtBQUssRUFBRSxFQUFFO29CQUNULE1BQU0sRUFBRSxFQUFFO2lCQUNYLEVBQ0QsV0FBVyxFQUFFLEdBQUcsRUFBRTtvQkFDaEIsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsQixDQUFDLEdBQ0Q7WUFDRix1QkFBQyxNQUFNLElBQ0wsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUNuQixFQUFFLEVBQUMscUJBQXFCLEVBQ3hCLEtBQUssRUFBQyxjQUFjLEVBQ3BCLFFBQVEsRUFBRSxFQUFFLEVBQ1osY0FBYyxFQUFFO29CQUNkLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtpQkFDOUIsRUFDRCxXQUFXLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtvQkFDakQsTUFBTSxFQUFFLEVBQUU7b0JBQ1YsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLFFBQVE7b0JBQ3BCLGNBQWMsRUFBRSxRQUFRO29CQUN4QixPQUFPLEVBQUUsQ0FBQztpQkFDWCxFQUNELFdBQVcsRUFBRSxHQUFHLEVBQUU7b0JBQ2hCLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxHQUNEO1lBQ0YsdUJBQUMsTUFBTSxJQUNMLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFDbkIsRUFBRSxFQUFDLHVCQUF1QixFQUMxQixLQUFLLEVBQUMsZ0JBQWdCLEVBQ3RCLGNBQWMsRUFBRTtvQkFDZCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7aUJBQzlCLEVBQ0QsUUFBUSxFQUFFLEVBQUUsRUFDWixXQUFXLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtvQkFDakQsTUFBTSxFQUFFLEVBQUU7b0JBQ1YsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLFFBQVE7b0JBQ3BCLGNBQWMsRUFBRSxRQUFRO29CQUN4QixPQUFPLEVBQUUsQ0FBQztpQkFDWCxFQUNELFdBQVcsRUFBRSxHQUFHLEVBQUU7b0JBQ2hCLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsQ0FBQyxHQUNEO1lBQ0YsdUJBQUMsTUFBTSxJQUNMLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFDbkIsRUFBRSxFQUFDLG9CQUFvQixFQUN2QixRQUFRLFFBQ1IsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUM5QyxXQUFXLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLEVBQUU7b0JBQ1YsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsVUFBVSxFQUFFLFFBQVE7b0JBQ3BCLGNBQWMsRUFBRSxRQUFRO29CQUN4QixPQUFPLEVBQUUsQ0FBQztpQkFDWCxFQUNELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUNoQixhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFDeEMsY0FBYyxFQUFFO29CQUNkLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtpQkFDdEQsRUFDRCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUNyQixXQUFXLEVBQUUsR0FBRyxFQUFFO29CQUNoQixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNqQyxDQUFDLEdBQ0QsQ0FDTztRQUNYLHVCQUFDLGtCQUFrQixJQUNqQixNQUFNLEVBQUUsTUFBTSxFQUNkLE1BQU0sRUFBRSxNQUFNLEVBQ2QsS0FBSyxFQUFFLEtBQUssRUFDWixLQUFLLEVBQUMscUJBQXFCLEdBQzNCLENBQ08sQ0FDWixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IHsgRGVlcFJlYWRvbmx5T2JqZWN0LCBJRW5naW5lLCBQQlZpZGVvUGxheWVyLCBFbnRpdHkgfSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgUmVhY3RFY3MsIHsgVWlFbnRpdHksIElucHV0LCBMYWJlbCB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB7IENPTE9SUywgSUNPTlMgfSBmcm9tICcuJztcbmltcG9ydCB7IGNyZWF0ZVZpZGVvUGxheWVyQ29udHJvbHMsIGlzVmlkZW9VcmwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFZpZGVvQ29udHJvbFZvbHVtZSB9IGZyb20gJy4vVm9sdW1lQ29udHJvbCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgSGVhZGVyIH0gZnJvbSAnLi4vSGVhZGVyJztcbmltcG9ydCB7IG9wZW5FeHRlcm5hbFVybCB9IGZyb20gJ35zeXN0ZW0vUmVzdHJpY3RlZEFjdGlvbnMnO1xuaW1wb3J0IHsgTElWRUtJVF9TVFJFQU1fU1JDIH0gZnJvbSAnLi4vLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHsgQ09OVEVOVF9VUkwgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5jb25zdCBWSURFT19QTEFZRVJfSEVMUF9VUkwgPVxuICAnaHR0cHM6Ly9kb2NzLmRlY2VudHJhbGFuZC5vcmcvY3JlYXRvci9zY2VuZS1lZGl0b3IvaW50ZXJhY3Rpdml0eS92aWRlby1zY3JlZW4nO1xuZXhwb3J0IGNvbnN0IEhFTFBfSUNPTiA9IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9oZWxwLnBuZ2A7XG5cbmV4cG9ydCBmdW5jdGlvbiBWaWRlb0NvbnRyb2xVUkwoe1xuICBlbmdpbmUsXG4gIHZpZGVvLFxuICBlbnRpdHksXG59OiB7XG4gIGVuZ2luZTogSUVuZ2luZTtcbiAgZW50aXR5OiBFbnRpdHk7XG4gIHZpZGVvOiBEZWVwUmVhZG9ubHlPYmplY3Q8UEJWaWRlb1BsYXllcj4gfCB1bmRlZmluZWQ7XG59KSB7XG4gIGNvbnN0IFt2aWRlb1VSTCwgc2V0VmlkZW9VUkxdID0gUmVhY3RFY3MudXNlU3RhdGUoJycpO1xuICBSZWFjdEVjcy51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHVybCA9IHZpZGVvPy5zcmMgPT09IExJVkVLSVRfU1RSRUFNX1NSQyA/ICcnIDogdmlkZW8/LnNyYztcbiAgICBzZXRWaWRlb1VSTCh1cmwgPz8gJycpO1xuICB9LCBbZW50aXR5XSk7XG4gIGNvbnN0IGNvbnRyb2xzID0gY3JlYXRlVmlkZW9QbGF5ZXJDb250cm9scyhlbnRpdHksIGVuZ2luZSk7XG4gIGNvbnN0IGlzQWN0aXZlID0gdmlkZW8gJiYgaXNWaWRlb1VybCh2aWRlby5zcmMpO1xuICByZXR1cm4gKFxuICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgd2lkdGg6ICcxMDAlJyB9fT5cbiAgICAgIDxVaUVudGl0eSB1aVRyYW5zZm9ybT17eyB3aWR0aDogJzEwMCUnLCBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nIH19PlxuICAgICAgICA8SGVhZGVyXG4gICAgICAgICAgaWNvblNyYz17SUNPTlMuVklERU9fU09VUkNFfVxuICAgICAgICAgIHRpdGxlPVwiVmlkZW8gVVJMXCJcbiAgICAgICAgLz5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IG9wZW5FeHRlcm5hbFVybCh7IHVybDogVklERU9fUExBWUVSX0hFTFBfVVJMIH0pfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogMjUsXG4gICAgICAgICAgICBoZWlnaHQ6IDI1LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICBjb2xvcjogQ29sb3I0LldoaXRlKCksXG4gICAgICAgICAgICB0ZXh0dXJlOiB7IHNyYzogSEVMUF9JQ09OIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG4gICAgICA8TGFiZWxcbiAgICAgICAgdmFsdWU9XCJQbGF5IHZpZGVvcyBieSBwYXN0aW5nIGFuIC5tM3U4IHZpZGVvIFVSTCBiZWxvdy5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNBMDlCQTgnKX1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgLz5cbiAgICAgIDxMYWJlbFxuICAgICAgICB2YWx1ZT1cIjxiPlZpZGVvIFVSTDxiPlwiXG4gICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDE2LCBib3R0b206IDggfSxcbiAgICAgICAgfX1cbiAgICAgIC8+XG5cbiAgICAgIDxJbnB1dFxuICAgICAgICBvbkNoYW5nZT17c2V0VmlkZW9VUkx9XG4gICAgICAgIHZhbHVlPXt2aWRlb1VSTH1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICB0ZXh0QWxpZ249XCJtaWRkbGUtbGVmdFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiUGFzdGUgeW91ciB2aWRlbyBVUkxcIlxuICAgICAgICBwbGFjZWhvbGRlckNvbG9yPXtDb2xvcjQuY3JlYXRlKDE2MCAvIDI1NSwgMTU1IC8gMjU1LCAxNjggLyAyNTUsIDEpfVxuICAgICAgICBjb2xvcj17aXNBY3RpdmUgPyBDb2xvcjQuQmxhY2soKSA6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjQTA5QkE4Jyl9XG4gICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyNGQ0ZDRkMnKSB9fVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIGJvcmRlclJhZGl1czogMTIsXG4gICAgICAgICAgYm9yZGVyQ29sb3I6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiA4MCxcbiAgICAgICAgfX1cbiAgICAgIC8+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiA0MCxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJyxcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiAxMCB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7dmlkZW8/LnNyYyAmJiBpc1ZpZGVvVXJsKHZpZGVvLnNyYykgJiYgKFxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9zaGFyZV9zY3JlZW5fY2xlYXJcIlxuICAgICAgICAgICAgdmFsdWU9XCI8Yj5EZWFjdGl2YXRlPC9iPlwiXG4gICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgICAgcGFkZGluZzogeyBsZWZ0OiA4LCByaWdodDogOCB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnRyb2xzLnNldFNvdXJjZSgnJyk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHsoIXZpZGVvVVJMIHx8IHZpZGVvVVJMICE9PSB2aWRlbz8uc3JjKSAmJiAoXG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgZGlzYWJsZWQ9eyFpc1ZpZGVvVXJsKHZpZGVvVVJMKX1cbiAgICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9zaGFyZV9zY3JlZW5fc2hhcmVcIlxuICAgICAgICAgICAgdmFsdWU9e1xuICAgICAgICAgICAgICB2aWRlbz8uc3JjICYmIHZpZGVvVVJMICE9PSB2aWRlby5zcmMgJiYgdmlkZW8uc3JjICE9PSBMSVZFS0lUX1NUUkVBTV9TUkNcbiAgICAgICAgICAgICAgICA/ICc8Yj5VcGRhdGU8L2I+J1xuICAgICAgICAgICAgICAgIDogJzxiPkFjdGl2YXRlPC9iPidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxhYmVsVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogeyBsZWZ0OiA2LCByaWdodDogNiB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICBjb2xvcjogaXNWaWRlb1VybCh2aWRlb1VSTCkgPyBDT0xPUlMuU1VDQ0VTUyA6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjMjc0NDMxJyksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5CbGFjaygpfVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgY29udHJvbHMuc2V0U291cmNlKHZpZGVvVVJMKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgIDxMYWJlbFxuICAgICAgICB2YWx1ZT1cIjxiPlZpZGVvIFBsYXliYWNrPC9iPlwiXG4gICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgY29sb3I9e0NvbG9yNC5XaGl0ZSgpfVxuICAgICAgICB1aVRyYW5zZm9ybT17eyBtYXJnaW46IHsgYm90dG9tOiAxMCB9IH19XG4gICAgICAvPlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIG1hcmdpbjogeyBib3R0b206IDEwIH0sXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBkaXNhYmxlZD17IWlzQWN0aXZlfVxuICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9wbGF5XCJcbiAgICAgICAgICB2YWx1ZT1cIjxiPlBsYXk8L2I+XCJcbiAgICAgICAgICBmb250U2l6ZT17MTh9XG4gICAgICAgICAgbGFiZWxUcmFuc2Zvcm09e3sgbWFyZ2luOiB7IHJpZ2h0OiAxMCB9IH19XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiwgYm90dG9tOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgICAgbWluV2lkdGg6IDY5LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgaWNvbj17SUNPTlMuUExBWV9CVVRUT059XG4gICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDM1LFxuICAgICAgICAgICAgaGVpZ2h0OiAzNSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICBjb250cm9scy5wbGF5KCk7XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGRpc2FibGVkPXshaXNBY3RpdmV9XG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3BhdXNlXCJcbiAgICAgICAgICB2YWx1ZT1cIjxiPlBhdXNlPC9iPlwiXG4gICAgICAgICAgZm9udFNpemU9ezE4fVxuICAgICAgICAgIGxhYmVsVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogNiwgcmlnaHQ6IDYgfSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCByaWdodDogMTYsIGJvdHRvbTogMCwgbGVmdDogMCB9LFxuICAgICAgICAgICAgaGVpZ2h0OiA0MixcbiAgICAgICAgICAgIG1pbldpZHRoOiA3OCxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICBjb250cm9scy5wYXVzZSgpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBkaXNhYmxlZD17IWlzQWN0aXZlfVxuICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9yZXN0YXJ0XCJcbiAgICAgICAgICB2YWx1ZT1cIjxiPlJlc3RhcnQ8L2I+XCJcbiAgICAgICAgICBsYWJlbFRyYW5zZm9ybT17e1xuICAgICAgICAgICAgbWFyZ2luOiB7IGxlZnQ6IDYsIHJpZ2h0OiA2IH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgICBmb250U2l6ZT17MTh9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiwgYm90dG9tOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgICAgbWluV2lkdGg6IDg4LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgIGNvbnRyb2xzLnJlc3RhcnQoKTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgZGlzYWJsZWQ9eyFpc0FjdGl2ZX1cbiAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfbG9vcFwiXG4gICAgICAgICAgb25seUljb25cbiAgICAgICAgICB2YXJpYW50PXt2aWRlbz8ubG9vcCA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgICAgd2lkdGg6IDQ5LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgaWNvbj17SUNPTlMuTE9PUH1cbiAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7IHdpZHRoOiAyNSwgaGVpZ2h0OiAyNSB9fVxuICAgICAgICAgIGljb25CYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICBjb2xvcjogIXZpZGVvPy5sb29wID8gQ29sb3I0LldoaXRlKCkgOiBDb2xvcjQuQmxhY2soKSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgY29udHJvbHMuc2V0TG9vcCghdmlkZW8/Lmxvb3ApO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPFZpZGVvQ29udHJvbFZvbHVtZVxuICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgZW50aXR5PXtlbnRpdHl9XG4gICAgICAgIHZpZGVvPXt2aWRlb31cbiAgICAgICAgbGFiZWw9XCI8Yj5WaWRlbyBWb2x1bWU8L2I+XCJcbiAgICAgIC8+XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cbiJdfQ==
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlkZW9VcmwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvVmlkZW9VcmwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDO0FBRWxDLE1BQU0scUJBQXFCLEdBQ3pCLCtFQUErRSxDQUFDO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxzQ0FBc0MsQ0FBQztBQUUxRixNQUFNLFVBQVUsZUFBZSxDQUFDLEVBQzlCLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUtQO0lBQ0MsTUFBTSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FB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TUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxLQUFLLEVBQ1osS0FBSyxFQUFDLHFCQUFxQixHQUMzQixDQUNPLENBQ1osQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvcjQgfSBmcm9tICdAZGNsL3Nkay9tYXRoJztcbmltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5T2JqZWN0LCBJRW5naW5lLCBQQlZpZGVvUGxheWVyLCBFbnRpdHkgfSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgUmVhY3RFY3MsIHsgVWlFbnRpdHksIElucHV0LCBMYWJlbCB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB7IG9wZW5FeHRlcm5hbFVybCB9IGZyb20gJ35zeXN0ZW0vUmVzdHJpY3RlZEFjdGlvbnMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IEhlYWRlciB9IGZyb20gJy4uL0hlYWRlcic7XG5pbXBvcnQgeyBMSVZFS0lUX1NUUkVBTV9TUkMgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBnZXRDb250ZW50VXJsIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFZpZGVvQ29udHJvbFZvbHVtZSB9IGZyb20gJy4vVm9sdW1lQ29udHJvbCc7XG5pbXBvcnQgeyBjcmVhdGVWaWRlb1BsYXllckNvbnRyb2xzLCBpc1ZpZGVvVXJsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBDT0xPUlMsIElDT05TIH0gZnJvbSAnLic7XG5cbmNvbnN0IFZJREVPX1BMQVlFUl9IRUxQX1VSTCA9XG4gICdodHRwczovL2RvY3MuZGVjZW50cmFsYW5kLm9yZy9jcmVhdG9yL3NjZW5lLWVkaXRvci9pbnRlcmFjdGl2aXR5L3ZpZGVvLXNjcmVlbic7XG5leHBvcnQgY29uc3QgZ2V0SGVscEljb24gPSAoKSA9PiBgJHtnZXRDb250ZW50VXJsKCl9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2hlbHAucG5nYDtcblxuZXhwb3J0IGZ1bmN0aW9uIFZpZGVvQ29udHJvbFVSTCh7XG4gIGVuZ2luZSxcbiAgdmlkZW8sXG4gIGVudGl0eSxcbn06IHtcbiAgZW5naW5lOiBJRW5naW5lO1xuICBlbnRpdHk6IEVudGl0eTtcbiAgdmlkZW86IERlZXBSZWFkb25seU9iamVjdDxQQlZpZGVvUGxheWVyPiB8IHVuZGVmaW5lZDtcbn0pIHtcbiAgY29uc3QgW3ZpZGVvVVJMLCBzZXRWaWRlb1VSTF0gPSBSZWFjdEVjcy51c2VTdGF0ZSgnJyk7XG4gIFJlYWN0RWNzLnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdXJsID0gdmlkZW8/LnNyYz8uc3RhcnRzV2l0aCgnbGl2ZWtpdC12aWRlbzovLycpID8gJycgOiB2aWRlbz8uc3JjO1xuICAgIHNldFZpZGVvVVJMKHVybCA/PyAnJyk7XG4gIH0sIFtlbnRpdHldKTtcbiAgY29uc3QgY29udHJvbHMgPSBjcmVhdGVWaWRlb1BsYXllckNvbnRyb2xzKGVudGl0eSwgZW5naW5lKTtcbiAgY29uc3QgaXNBY3RpdmUgPSB2aWRlbyAmJiBpc1ZpZGVvVXJsKHZpZGVvLnNyYyk7XG4gIHJldHVybiAoXG4gICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCB3aWR0aDogJzEwMCUnIH19PlxuICAgICAgPFVpRW50aXR5IHVpVHJhbnNmb3JtPXt7IHdpZHRoOiAnMTAwJScsIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicgfX0+XG4gICAgICAgIDxIZWFkZXJcbiAgICAgICAgICBpY29uU3JjPXtJQ09OUy5WSURFT19TT1VSQ0V9XG4gICAgICAgICAgdGl0bGU9XCJWaWRlbyBVUkxcIlxuICAgICAgICAvPlxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4gb3BlbkV4dGVybmFsVXJsKHsgdXJsOiBWSURFT19QTEFZRVJfSEVMUF9VUkwgfSl9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgIGNvbG9yOiBDb2xvcjQuV2hpdGUoKSxcbiAgICAgICAgICAgIHRleHR1cmU6IHsgc3JjOiBnZXRIZWxwSWNvbigpIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG4gICAgICA8TGFiZWxcbiAgICAgICAgdmFsdWU9XCJQbGF5IHZpZGVvcyBieSBwYXN0aW5nIGFuIC5tM3U4IHZpZGVvIFVSTCBiZWxvdy5cIlxuICAgICAgICBjb2xvcj17Q29sb3I0LmZyb21IZXhTdHJpbmcoJyNBMDlCQTgnKX1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgLz5cbiAgICAgIDxMYWJlbFxuICAgICAgICB2YWx1ZT1cIjxiPlZpZGVvIFVSTDxiPlwiXG4gICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDE2LCBib3R0b206IDggfSxcbiAgICAgICAgfX1cbiAgICAgIC8+XG5cbiAgICAgIDxJbnB1dFxuICAgICAgICBvbkNoYW5nZT17c2V0VmlkZW9VUkx9XG4gICAgICAgIHZhbHVlPXt2aWRlb1VSTH1cbiAgICAgICAgZm9udFNpemU9ezE2fVxuICAgICAgICB0ZXh0QWxpZ249XCJtaWRkbGUtbGVmdFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiUGFzdGUgeW91ciB2aWRlbyBVUkxcIlxuICAgICAgICBwbGFjZWhvbGRlckNvbG9yPXtDb2xvcjQuY3JlYXRlKDE2MCAvIDI1NSwgMTU1IC8gMjU1LCAxNjggLyAyNTUsIDEpfVxuICAgICAgICBjb2xvcj17aXNBY3RpdmUgPyBDb2xvcjQuQmxhY2soKSA6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjQTA5QkE4Jyl9XG4gICAgICAgIHVpQmFja2dyb3VuZD17eyBjb2xvcjogQ29sb3I0LmZyb21IZXhTdHJpbmcoJyNGQ0ZDRkMnKSB9fVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIGJvcmRlclJhZGl1czogMTIsXG4gICAgICAgICAgYm9yZGVyQ29sb3I6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiA4MCxcbiAgICAgICAgfX1cbiAgICAgIC8+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiA0MCxcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJyxcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiAxMCB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7dmlkZW8/LnNyYyAmJiBpc1ZpZGVvVXJsKHZpZGVvLnNyYykgJiYgKFxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9zaGFyZV9zY3JlZW5fY2xlYXJcIlxuICAgICAgICAgICAgdmFsdWU9XCI8Yj5EZWFjdGl2YXRlPC9iPlwiXG4gICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICBmb250U2l6ZT17MTZ9XG4gICAgICAgICAgICBjb2xvcj17Q29sb3I0LldoaXRlKCl9XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggfSxcbiAgICAgICAgICAgICAgcGFkZGluZzogeyBsZWZ0OiA4LCByaWdodDogOCB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnRyb2xzLnNldFNvdXJjZSgnJyk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHsoIXZpZGVvVVJMIHx8IHZpZGVvVVJMICE9PSB2aWRlbz8uc3JjKSAmJiAoXG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgZGlzYWJsZWQ9eyFpc1ZpZGVvVXJsKHZpZGVvVVJMKX1cbiAgICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9zaGFyZV9zY3JlZW5fc2hhcmVcIlxuICAgICAgICAgICAgdmFsdWU9e1xuICAgICAgICAgICAgICB2aWRlbz8uc3JjICYmIHZpZGVvVVJMICE9PSB2aWRlby5zcmMgJiYgdmlkZW8uc3JjICE9PSBMSVZFS0lUX1NUUkVBTV9TUkNcbiAgICAgICAgICAgICAgICA/ICc8Yj5VcGRhdGU8L2I+J1xuICAgICAgICAgICAgICAgIDogJzxiPkFjdGl2YXRlPC9iPidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxhYmVsVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIG1hcmdpbjogeyBsZWZ0OiA2LCByaWdodDogNiB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICBjb2xvcjogaXNWaWRlb1VybCh2aWRlb1VSTCkgPyBDT0xPUlMuU1VDQ0VTUyA6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjMjc0NDMxJyksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5CbGFjaygpfVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgY29udHJvbHMuc2V0U291cmNlKHZpZGVvVVJMKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgIDxMYWJlbFxuICAgICAgICB2YWx1ZT1cIjxiPlZpZGVvIFBsYXliYWNrPC9iPlwiXG4gICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgY29sb3I9e0NvbG9yNC5XaGl0ZSgpfVxuICAgICAgICB1aVRyYW5zZm9ybT17eyBtYXJnaW46IHsgYm90dG9tOiAxMCB9IH19XG4gICAgICAvPlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIG1hcmdpbjogeyBib3R0b206IDEwIH0sXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBkaXNhYmxlZD17IWlzQWN0aXZlfVxuICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9wbGF5XCJcbiAgICAgICAgICB2YWx1ZT1cIjxiPlBsYXk8L2I+XCJcbiAgICAgICAgICBmb250U2l6ZT17MTh9XG4gICAgICAgICAgbGFiZWxUcmFuc2Zvcm09e3sgbWFyZ2luOiB7IHJpZ2h0OiAxMCB9IH19XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiwgYm90dG9tOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgICAgbWluV2lkdGg6IDY5LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgaWNvbj17SUNPTlMuUExBWV9CVVRUT059XG4gICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDM1LFxuICAgICAgICAgICAgaGVpZ2h0OiAzNSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICBjb250cm9scy5wbGF5KCk7XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIGRpc2FibGVkPXshaXNBY3RpdmV9XG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3BhdXNlXCJcbiAgICAgICAgICB2YWx1ZT1cIjxiPlBhdXNlPC9iPlwiXG4gICAgICAgICAgZm9udFNpemU9ezE4fVxuICAgICAgICAgIGxhYmVsVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogNiwgcmlnaHQ6IDYgfSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCByaWdodDogMTYsIGJvdHRvbTogMCwgbGVmdDogMCB9LFxuICAgICAgICAgICAgaGVpZ2h0OiA0MixcbiAgICAgICAgICAgIG1pbldpZHRoOiA3OCxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICBjb250cm9scy5wYXVzZSgpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBkaXNhYmxlZD17IWlzQWN0aXZlfVxuICAgICAgICAgIGlkPVwidmlkZW9fY29udHJvbF9yZXN0YXJ0XCJcbiAgICAgICAgICB2YWx1ZT1cIjxiPlJlc3RhcnQ8L2I+XCJcbiAgICAgICAgICBsYWJlbFRyYW5zZm9ybT17e1xuICAgICAgICAgICAgbWFyZ2luOiB7IGxlZnQ6IDYsIHJpZ2h0OiA2IH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgICBmb250U2l6ZT17MTh9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiwgYm90dG9tOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgICAgbWluV2lkdGg6IDg4LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgIGNvbnRyb2xzLnJlc3RhcnQoKTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgZGlzYWJsZWQ9eyFpc0FjdGl2ZX1cbiAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfbG9vcFwiXG4gICAgICAgICAgb25seUljb25cbiAgICAgICAgICB2YXJpYW50PXt2aWRlbz8ubG9vcCA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgICAgd2lkdGg6IDQ5LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgaWNvbj17SUNPTlMuTE9PUH1cbiAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7IHdpZHRoOiAyNSwgaGVpZ2h0OiAyNSB9fVxuICAgICAgICAgIGljb25CYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICBjb2xvcjogIXZpZGVvPy5sb29wID8gQ29sb3I0LldoaXRlKCkgOiBDb2xvcjQuQmxhY2soKSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNvbG9yPXtDb2xvcjQuV2hpdGUoKX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgY29udHJvbHMuc2V0TG9vcCghdmlkZW8/Lmxvb3ApO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICAgPFZpZGVvQ29udHJvbFZvbHVtZVxuICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgZW50aXR5PXtlbnRpdHl9XG4gICAgICAgIHZpZGVvPXt2aWRlb31cbiAgICAgICAgbGFiZWw9XCI8Yj5WaWRlbyBWb2x1bWU8L2I+XCJcbiAgICAgIC8+XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { DeepReadonlyObject, Entity, IEngine, PBVideoPlayer } from '@dcl/ecs';
|
|
1
|
+
import type { DeepReadonlyObject, Entity, IEngine, PBVideoPlayer } from '@dcl/ecs';
|
|
2
2
|
import ReactEcs from '@dcl/react-ecs';
|
|
3
|
-
export declare function VideoControlVolume({ engine, label, entity, video, }: {
|
|
3
|
+
export declare function VideoControlVolume({ engine, label, entity, video, idPrefix, }: {
|
|
4
4
|
engine: IEngine;
|
|
5
5
|
label: string;
|
|
6
6
|
entity: Entity;
|
|
7
7
|
video: DeepReadonlyObject<PBVideoPlayer> | undefined;
|
|
8
|
+
idPrefix?: string;
|
|
8
9
|
}): ReactEcs.JSX.Element;
|
|
@@ -3,7 +3,7 @@ import { Color4 } from '@dcl/ecs-math';
|
|
|
3
3
|
import { Button } from '../Button';
|
|
4
4
|
import { createVideoPlayerControls, getAdminToolkitVideoControl } from './utils';
|
|
5
5
|
import { COLORS, DEFAULT_VOLUME, ICONS, VOLUME_STEP } from '.';
|
|
6
|
-
export function VideoControlVolume({ engine, label, entity, video, }) {
|
|
6
|
+
export function VideoControlVolume({ engine, label, entity, video, idPrefix = 'video_control_volume', }) {
|
|
7
7
|
const controls = createVideoPlayerControls(entity, engine);
|
|
8
8
|
const videoControl = getAdminToolkitVideoControl(engine);
|
|
9
9
|
const isSoundDisabled = videoControl?.disableVideoPlayersSound;
|
|
@@ -44,7 +44,7 @@ export function VideoControlVolume({ engine, label, entity, video, }) {
|
|
|
44
44
|
ReactEcs.createElement(UiEntity, { uiTransform: {
|
|
45
45
|
flexDirection: 'row',
|
|
46
46
|
} },
|
|
47
|
-
ReactEcs.createElement(Button, { id:
|
|
47
|
+
ReactEcs.createElement(Button, { id: `${idPrefix}_minus`, value: "Minus", fontSize: 14, uiTransform: {
|
|
48
48
|
margin: { top: 0, right: 16, bottom: 0, left: 0 },
|
|
49
49
|
width: 49,
|
|
50
50
|
alignItems: 'center',
|
|
@@ -53,7 +53,7 @@ export function VideoControlVolume({ engine, label, entity, video, }) {
|
|
|
53
53
|
}, icon: ICONS.VOLUME_MINUS_BUTTON, onlyIcon: true, iconTransform: {
|
|
54
54
|
width: 25,
|
|
55
55
|
height: 25,
|
|
56
|
-
}, onMouseDown: () => controls.setVolume(-VOLUME_STEP), disabled: isSoundDisabled ||
|
|
56
|
+
}, onMouseDown: () => controls.setVolume(-VOLUME_STEP), disabled: isSoundDisabled || video?.volume === 0 }),
|
|
57
57
|
ReactEcs.createElement(Label, { value: volumePercentage, fontSize: 18, color: COLORS.GRAY, uiTransform: {
|
|
58
58
|
margin: { top: 0, right: 16, bottom: 0, left: 0 },
|
|
59
59
|
alignItems: 'center',
|
|
@@ -61,7 +61,7 @@ export function VideoControlVolume({ engine, label, entity, video, }) {
|
|
|
61
61
|
padding: 0,
|
|
62
62
|
width: 60,
|
|
63
63
|
} }),
|
|
64
|
-
ReactEcs.createElement(Button, { id:
|
|
64
|
+
ReactEcs.createElement(Button, { id: `${idPrefix}_plus`, value: "Plus", fontSize: 14, icon: ICONS.VOLUME_PLUS_BUTTON, onlyIcon: true, iconTransform: {
|
|
65
65
|
width: 25,
|
|
66
66
|
height: 25,
|
|
67
67
|
}, uiTransform: {
|
|
@@ -71,18 +71,16 @@ export function VideoControlVolume({ engine, label, entity, video, }) {
|
|
|
71
71
|
justifyContent: 'center',
|
|
72
72
|
padding: 0,
|
|
73
73
|
}, onMouseDown: () => controls.setVolume(VOLUME_STEP), disabled: isSoundDisabled || video?.volume === 1 }),
|
|
74
|
-
ReactEcs.createElement(Button, { id:
|
|
75
|
-
color: video?.volume ? Color4.
|
|
74
|
+
ReactEcs.createElement(Button, { id: `${idPrefix}_mute`, variant: video?.volume === 0 ? 'primary' : 'secondary', fontSize: 18, iconTransform: { width: 24, height: 24 }, onlyIcon: true, icon: ICONS.MUTE, iconBackground: {
|
|
75
|
+
color: video?.volume === 0 ? Color4.Black() : Color4.White(),
|
|
76
76
|
}, uiTransform: {
|
|
77
|
-
borderColor: Color4.fromHexString('#FCFCFC'),
|
|
78
|
-
borderWidth: 2,
|
|
79
77
|
width: 49,
|
|
80
78
|
height: 42,
|
|
81
79
|
alignItems: 'center',
|
|
82
80
|
justifyContent: 'center',
|
|
83
81
|
padding: 0,
|
|
84
82
|
}, onMouseDown: () => {
|
|
85
|
-
controls.setVolume(
|
|
83
|
+
controls.setVolume(video?.volume === 0 ? 100 : 0);
|
|
86
84
|
}, disabled: isSoundDisabled }))));
|
|
87
85
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVm9sdW1lQ29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZG1pbi10b29sa2l0LXVpL1ZpZGVvQ29udHJvbC9Wb2x1bWVDb250cm9sLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLENBQUM7QUFFL0QsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEVBQ2pDLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLEtBQUssR0FNTjtJQUNDLE1BQU0sUUFBUSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxNQUFNLFlBQVksR0FBRywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RCxNQUFNLGVBQWUsR0FBRyxZQUFZLEVBQUUsd0JBQXdCLENBQUM7SUFDL0QsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLGNBQWMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFFbkYsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQ0wsdUJBQUMsUUFBUSxJQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzQyx1QkFBQyxRQUFRLElBQ1AsV0FBVyxFQUFFO29C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LEtBQUssRUFBRTtpQkFDdkQsRUFDRCxXQUFXLEVBQUU7b0JBQ1gsV0FBVyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO29CQUM1QyxXQUFXLEVBQUUsQ0FBQztvQkFDZCxLQUFLLEVBQUUsRUFBRTtvQkFDVCxNQUFNLEVBQUUsRUFBRTtvQkFDVixVQUFVLEVBQUUsUUFBUTtvQkFDcEIsY0FBYyxFQUFFLFFBQVE7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDO2lCQUNYLEVBQ0QsV0FBVyxFQUFFLEdBQUcsRUFBRTtvQkFDaEIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLENBQUMsRUFDRCxRQUFRLEVBQUUsZUFBZSxHQUN6QixDQUNPLENBQ0YsQ0FDWixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZXBSZWFkb25seU9iamVjdCwgRW50aXR5LCBJRW5naW5lLCBQQlZpZGVvUGxheWVyIH0gZnJvbSAnQGRjbC9lY3MnO1xuaW1wb3J0IFJlYWN0RWNzLCB7IExhYmVsLCBVaUVudGl0eSB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvZWNzLW1hdGgnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IGNyZWF0ZVZpZGVvUGxheWVyQ29udHJvbHMsIGdldEFkbWluVG9vbGtpdFZpZGVvQ29udHJvbCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQ09MT1JTLCBERUZBVUxUX1ZPTFVNRSwgSUNPTlMsIFZPTFVNRV9TVEVQIH0gZnJvbSAnLic7XG5cbmV4cG9ydCBmdW5jdGlvbiBWaWRlb0NvbnRyb2xWb2x1bWUoe1xuICBlbmdpbmUsXG4gIGxhYmVsLFxuICBlbnRpdHksXG4gIHZpZGVvLFxufToge1xuICBlbmdpbmU6IElFbmdpbmU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGVudGl0eTogRW50aXR5O1xuICB2aWRlbzogRGVlcFJlYWRvbmx5T2JqZWN0PFBCVmlkZW9QbGF5ZXI+IHwgdW5kZWZpbmVkO1xufSkge1xuICBjb25zdCBjb250cm9scyA9IGNyZWF0ZVZpZGVvUGxheWVyQ29udHJvbHMoZW50aXR5LCBlbmdpbmUpO1xuICBjb25zdCB2aWRlb0NvbnRyb2wgPSBnZXRBZG1pblRvb2xraXRWaWRlb0NvbnRyb2woZW5naW5lKTtcbiAgY29uc3QgaXNTb3VuZERpc2FibGVkID0gdmlkZW9Db250cm9sPy5kaXNhYmxlVmlkZW9QbGF5ZXJzU291bmQ7XG4gIGNvbnN0IHZvbHVtZVBlcmNlbnRhZ2UgPSBgJHtNYXRoLnJvdW5kKCh2aWRlbz8udm9sdW1lID8/IERFRkFVTFRfVk9MVU1FKSAqIDEwMCl9JWA7XG5cbiAgaWYgKGlzU291bmREaXNhYmxlZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgbWFyZ2luOiB7IHRvcDogNCB9IH19PlxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDI0LFxuICAgICAgICAgICAgaGVpZ2h0OiAyNCxcbiAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICBzcmM6IElDT05TLk1VVEUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29sb3I6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjQTA5QkE4JyksXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAgPExhYmVsXG4gICAgICAgICAgdmFsdWU9XCJTb3VuZCBpcyBkaXNhYmxlZCBmb3IgYWxsIHNjcmVlbnNcIlxuICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0EwOUJBOCcpfVxuICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgLz5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogOCB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICBzcmM6IElDT05TLklORk8sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29sb3I6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxVaUVudGl0eVxuICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgIG1hcmdpbjogeyB0b3A6IDE2IH0sXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxMYWJlbFxuICAgICAgICB2YWx1ZT17bGFiZWx9XG4gICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgY29sb3I9e0NPTE9SUy5XSElURX1cbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCByaWdodDogMCwgYm90dG9tOiAxMCwgbGVmdDogMCB9LFxuICAgICAgICB9fVxuICAgICAgLz5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBpZD1cInZpZGVvX2NvbnRyb2xfdm9sdW1lX21pbnVzXCJcbiAgICAgICAgICB2YWx1ZT1cIk1pbnVzXCJcbiAgICAgICAgICBmb250U2l6ZT17MTR9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiwgYm90dG9tOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgICB3aWR0aDogNDksXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBpY29uPXtJQ09OUy5WT0xVTUVfTUlOVVNfQlVUVE9OfVxuICAgICAgICAgIG9ubHlJY29uPXt0cnVlfVxuICAgICAgICAgIGljb25UcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4gY29udHJvbHMuc2V0Vm9sdW1lKC1WT0xVTUVfU1RFUCl9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzU291bmREaXNhYmxlZCB8fCAhdmlkZW8/LnZvbHVtZX1cbiAgICAgICAgLz5cbiAgICAgICAgPExhYmVsXG4gICAgICAgICAgdmFsdWU9e3ZvbHVtZVBlcmNlbnRhZ2V9XG4gICAgICAgICAgZm9udFNpemU9ezE4fVxuICAgICAgICAgIGNvbG9yPXtDT0xPUlMuR1JBWX1cbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgbWFyZ2luOiB7IHRvcDogMCwgcmlnaHQ6IDE2LCBib3R0b206IDAsIGxlZnQ6IDAgfSxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgIHdpZHRoOiA2MCxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3ZvbHVtZV9wbHVzXCJcbiAgICAgICAgICB2YWx1ZT1cIlBsdXNcIlxuICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgICBpY29uPXtJQ09OUy5WT0xVTUVfUExVU19CVVRUT059XG4gICAgICAgICAgb25seUljb249e3RydWV9XG4gICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDI1LFxuICAgICAgICAgICAgaGVpZ2h0OiAyNSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCByaWdodDogMTYsIGJvdHRvbTogMCwgbGVmdDogMCB9LFxuICAgICAgICAgICAgd2lkdGg6IDQ5LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IGNvbnRyb2xzLnNldFZvbHVtZShWT0xVTUVfU1RFUCl9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzU291bmREaXNhYmxlZCB8fCB2aWRlbz8udm9sdW1lID09PSAxfVxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgaWQ9XCJ2aWRlb19jb250cm9sX3ZvbHVtZV9tdXRlXCJcbiAgICAgICAgICB2YXJpYW50PXshdmlkZW8/LnZvbHVtZSA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknfVxuICAgICAgICAgIGZvbnRTaXplPXsxOH1cbiAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7IHdpZHRoOiAyNCwgaGVpZ2h0OiAyNCB9fVxuICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgaWNvbj17SUNPTlMuTVVURX1cbiAgICAgICAgICBpY29uQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgY29sb3I6IHZpZGVvPy52b2x1bWUgPyBDb2xvcjQuV2hpdGUoKSA6IENvbG9yNC5CbGFjaygpLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBDb2xvcjQuZnJvbUhleFN0cmluZygnI0ZDRkNGQycpLFxuICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIsXG4gICAgICAgICAgICB3aWR0aDogNDksXG4gICAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgIGNvbnRyb2xzLnNldFZvbHVtZSghdmlkZW8/LnZvbHVtZSA/IDEwMCA6IDApO1xuICAgICAgICAgIH19XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzU291bmREaXNhYmxlZH1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG4gICAgPC9VaUVudGl0eT5cbiAgKTtcbn1cbiJdfQ==
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVm9sdW1lQ29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZG1pbi10b29sa2l0LXVpL1ZpZGVvQ29udHJvbC9Wb2x1bWVDb250cm9sLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLENBQUM7QUFFL0QsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEVBQ2pDLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEdBQUcsc0JBQXNCLEdBT2xDO0lBQ0MsTUFBTSxRQUFRLEdBQUcseUJBQXlCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELE1BQU0sWUFBWSxHQUFHLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELE1BQU0sZUFBZSxHQUFHLFlBQVksRUFBRSx3QkFBd0IsQ0FBQztJQUMvRCxNQUFNLGdCQUFnQixHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksY0FBYyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUVuRixJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FDTCx1QkFBQyxRQUFRLElBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzNDLHVCQUFD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QUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7aUJBQzdELEVBQ0QsV0FBVyxFQUFFO29CQUNYLEtBQUssRUFBRSxFQUFFO29CQUNULE1BQU0sRUFBRSxFQUFFO29CQUNWLFVBQVUsRUFBRSxRQUFRO29CQUNwQixjQUFjLEVBQUUsUUFBUTtvQkFDeEIsT0FBTyxFQUFFLENBQUM7aUJBQ1gsRUFDRCxXQUFXLEVBQUUsR0FBRyxFQUFFO29CQUNoQixRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRCxDQUFDLEVBQ0QsUUFBUSxFQUFFLGVBQWUsR0FDekIsQ0FDTyxDQUNGLENBQ1osQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlZXBSZWFkb25seU9iamVjdCwgRW50aXR5LCBJRW5naW5lLCBQQlZpZGVvUGxheWVyIH0gZnJvbSAnQGRjbC9lY3MnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuaW1wb3J0IFJlYWN0RWNzLCB7IExhYmVsLCBVaUVudGl0eSB9IGZyb20gJ0BkY2wvcmVhY3QtZWNzJztcbmltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvZWNzLW1hdGgnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IGNyZWF0ZVZpZGVvUGxheWVyQ29udHJvbHMsIGdldEFkbWluVG9vbGtpdFZpZGVvQ29udHJvbCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQ09MT1JTLCBERUZBVUxUX1ZPTFVNRSwgSUNPTlMsIFZPTFVNRV9TVEVQIH0gZnJvbSAnLic7XG5cbmV4cG9ydCBmdW5jdGlvbiBWaWRlb0NvbnRyb2xWb2x1bWUoe1xuICBlbmdpbmUsXG4gIGxhYmVsLFxuICBlbnRpdHksXG4gIHZpZGVvLFxuICBpZFByZWZpeCA9ICd2aWRlb19jb250cm9sX3ZvbHVtZScsXG59OiB7XG4gIGVuZ2luZTogSUVuZ2luZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgZW50aXR5OiBFbnRpdHk7XG4gIHZpZGVvOiBEZWVwUmVhZG9ubHlPYmplY3Q8UEJWaWRlb1BsYXllcj4gfCB1bmRlZmluZWQ7XG4gIGlkUHJlZml4Pzogc3RyaW5nO1xufSkge1xuICBjb25zdCBjb250cm9scyA9IGNyZWF0ZVZpZGVvUGxheWVyQ29udHJvbHMoZW50aXR5LCBlbmdpbmUpO1xuICBjb25zdCB2aWRlb0NvbnRyb2wgPSBnZXRBZG1pblRvb2xraXRWaWRlb0NvbnRyb2woZW5naW5lKTtcbiAgY29uc3QgaXNTb3VuZERpc2FibGVkID0gdmlkZW9Db250cm9sPy5kaXNhYmxlVmlkZW9QbGF5ZXJzU291bmQ7XG4gIGNvbnN0IHZvbHVtZVBlcmNlbnRhZ2UgPSBgJHtNYXRoLnJvdW5kKCh2aWRlbz8udm9sdW1lID8/IERFRkFVTFRfVk9MVU1FKSAqIDEwMCl9JWA7XG5cbiAgaWYgKGlzU291bmREaXNhYmxlZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8VWlFbnRpdHkgdWlUcmFuc2Zvcm09e3sgbWFyZ2luOiB7IHRvcDogNCB9IH19PlxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IDI0LFxuICAgICAgICAgICAgaGVpZ2h0OiAyNCxcbiAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogOCB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICBzcmM6IElDT05TLk1VVEUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29sb3I6IENvbG9yNC5mcm9tSGV4U3RyaW5nKCcjQTA5QkE4JyksXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAgPExhYmVsXG4gICAgICAgICAgdmFsdWU9XCJTb3VuZCBpcyBkaXNhYmxlZCBmb3IgYWxsIHNjcmVlbnNcIlxuICAgICAgICAgIGNvbG9yPXtDb2xvcjQuZnJvbUhleFN0cmluZygnI0EwOUJBOCcpfVxuICAgICAgICAgIGZvbnRTaXplPXsxNH1cbiAgICAgICAgLz5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgICBtYXJnaW46IHsgbGVmdDogOCB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICBzcmM6IElDT05TLklORk8sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29sb3I6IENvbG9yNC5XaGl0ZSgpLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxVaUVudGl0eVxuICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgIG1hcmdpbjogeyB0b3A6IDE2IH0sXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxMYWJlbFxuICAgICAgICB2YWx1ZT17bGFiZWx9XG4gICAgICAgIGZvbnRTaXplPXsxNn1cbiAgICAgICAgY29sb3I9e0NPTE9SUy5XSElURX1cbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCByaWdodDogMCwgYm90dG9tOiAxMCwgbGVmdDogMCB9LFxuICAgICAgICB9fVxuICAgICAgLz5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBpZD17YCR7aWRQcmVmaXh9X21pbnVzYH1cbiAgICAgICAgICB2YWx1ZT1cIk1pbnVzXCJcbiAgICAgICAgICBmb250U2l6ZT17MTR9XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiwgYm90dG9tOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgICB3aWR0aDogNDksXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBpY29uPXtJQ09OUy5WT0xVTUVfTUlOVVNfQlVUVE9OfVxuICAgICAgICAgIG9ubHlJY29uPXt0cnVlfVxuICAgICAgICAgIGljb25UcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiAyNSxcbiAgICAgICAgICAgIGhlaWdodDogMjUsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4gY29udHJvbHMuc2V0Vm9sdW1lKC1WT0xVTUVfU1RFUCl9XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzU291bmREaXNhYmxlZCB8fCB2aWRlbz8udm9sdW1lID09PSAwfVxuICAgICAgICAvPlxuICAgICAgICA8TGFiZWxcbiAgICAgICAgICB2YWx1ZT17dm9sdW1lUGVyY2VudGFnZX1cbiAgICAgICAgICBmb250U2l6ZT17MTh9XG4gICAgICAgICAgY29sb3I9e0NPTE9SUy5HUkFZfVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBtYXJnaW46IHsgdG9wOiAwLCByaWdodDogMTYsIGJvdHRvbTogMCwgbGVmdDogMCB9LFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgICAgd2lkdGg6IDYwLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBpZD17YCR7aWRQcmVmaXh9X3BsdXNgfVxuICAgICAgICAgIHZhbHVlPVwiUGx1c1wiXG4gICAgICAgICAgZm9udFNpemU9ezE0fVxuICAgICAgICAgIGljb249e0lDT05TLlZPTFVNRV9QTFVTX0JVVFRPTn1cbiAgICAgICAgICBvbmx5SWNvbj17dHJ1ZX1cbiAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogMjUsXG4gICAgICAgICAgICBoZWlnaHQ6IDI1LFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIG1hcmdpbjogeyB0b3A6IDAsIHJpZ2h0OiAxNiwgYm90dG9tOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgICB3aWR0aDogNDksXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4gY29udHJvbHMuc2V0Vm9sdW1lKFZPTFVNRV9TVEVQKX1cbiAgICAgICAgICBkaXNhYmxlZD17aXNTb3VuZERpc2FibGVkIHx8IHZpZGVvPy52b2x1bWUgPT09IDF9XG4gICAgICAgIC8+XG4gICAgICAgIDxCdXR0b25cbiAgICAgICAgICBpZD17YCR7aWRQcmVmaXh9X211dGVgfVxuICAgICAgICAgIHZhcmlhbnQ9e3ZpZGVvPy52b2x1bWUgPT09IDAgPyAncHJpbWFyeScgOiAnc2Vjb25kYXJ5J31cbiAgICAgICAgICBmb250U2l6ZT17MTh9XG4gICAgICAgICAgaWNvblRyYW5zZm9ybT17eyB3aWR0aDogMjQsIGhlaWdodDogMjQgfX1cbiAgICAgICAgICBvbmx5SWNvblxuICAgICAgICAgIGljb249e0lDT05TLk1VVEV9XG4gICAgICAgICAgaWNvbkJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgIGNvbG9yOiB2aWRlbz8udm9sdW1lID09PSAwID8gQ29sb3I0LkJsYWNrKCkgOiBDb2xvcjQuV2hpdGUoKSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogNDksXG4gICAgICAgICAgICBoZWlnaHQ6IDQyLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgIGNvbnRyb2xzLnNldFZvbHVtZSh2aWRlbz8udm9sdW1lID09PSAwID8gMTAwIDogMCk7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBkaXNhYmxlZD17aXNTb3VuZERpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9VaUVudGl0eT5cbiAgICA8L1VpRW50aXR5PlxuICApO1xufVxuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Result } from '../fetch-utils';
|
|
2
|
+
import type { PresentationState } from '../types';
|
|
2
3
|
type StreamKeyResponse = {
|
|
3
4
|
streamingUrl: string;
|
|
4
5
|
streamingKey: string;
|
|
@@ -18,5 +19,53 @@ export declare function getStreamKey(): Promise<Result<StreamKeyResponse, string
|
|
|
18
19
|
export declare function generateStreamKey(): Promise<Result<StreamKeyResponse, string>>;
|
|
19
20
|
export declare function revokeStreamKey(): Promise<Result<StreamKeyResponse, string>>;
|
|
20
21
|
export declare function resetStreamKey(): Promise<Result<StreamKeyResponse, string>>;
|
|
22
|
+
export type DclCastTracksResponse = {
|
|
23
|
+
participants: {
|
|
24
|
+
identity: string;
|
|
25
|
+
tracks: {
|
|
26
|
+
sid: string;
|
|
27
|
+
type: 'AUDIO' | 'VIDEO';
|
|
28
|
+
source: 'MICROPHONE' | 'CAMERA' | 'SCREEN_SHARE';
|
|
29
|
+
}[];
|
|
30
|
+
name: string;
|
|
31
|
+
}[];
|
|
32
|
+
};
|
|
21
33
|
export declare function getDclCastInfo(): Promise<Result<DclCastResponse, string>>;
|
|
34
|
+
export declare function getPresenters(): Promise<Result<string[], string>>;
|
|
35
|
+
export declare function promotePresenter(address: string): Promise<Result<void, string>>;
|
|
36
|
+
export declare function ensurePresenterRole(playerAddress: string): Promise<void>;
|
|
37
|
+
type PresentationBotTokenResponse = {
|
|
38
|
+
url: string;
|
|
39
|
+
token: string;
|
|
40
|
+
roomId: string;
|
|
41
|
+
};
|
|
42
|
+
export declare function getPresentationBotToken(streamingKey: string): Promise<Result<PresentationBotTokenResponse, string>>;
|
|
43
|
+
export declare function startPresentation(url: string, livekitToken: string, livekitUrl: string): Promise<Result<void, string>>;
|
|
44
|
+
export type FlattenedTrack = {
|
|
45
|
+
sid: string;
|
|
46
|
+
identity: string;
|
|
47
|
+
sourceType: number;
|
|
48
|
+
name: string;
|
|
49
|
+
customName: string;
|
|
50
|
+
};
|
|
51
|
+
export type Participant = {
|
|
52
|
+
name: string;
|
|
53
|
+
identity: string;
|
|
54
|
+
tracks: FlattenedTrack[];
|
|
55
|
+
};
|
|
56
|
+
export declare const SOURCE_TYPE_LABELS: Record<number, string>;
|
|
57
|
+
export declare const getSourceLabel: (sourceType: number) => string;
|
|
58
|
+
export declare function isPresentationBot(name: string): boolean;
|
|
59
|
+
export declare function hasPresentationTrack(tracks: FlattenedTrack[]): boolean;
|
|
60
|
+
export declare function groupTracksByParticipant(tracks: FlattenedTrack[]): Participant[];
|
|
61
|
+
export declare function getActiveStreams(): Promise<FlattenedTrack[] | undefined>;
|
|
62
|
+
export declare function subscribeToPresentationTopic(): void;
|
|
63
|
+
export declare function requestPresentationState(): void;
|
|
64
|
+
export declare function consumePresentationMessages(): Promise<PresentationState | 'stopped' | undefined>;
|
|
65
|
+
export declare function nextSlide(): void;
|
|
66
|
+
export declare function prevSlide(): void;
|
|
67
|
+
export declare function playPresentationVideo(videoIndex: number): void;
|
|
68
|
+
export declare function pausePresentationVideo(): void;
|
|
69
|
+
export declare function stopPresentationVideo(): void;
|
|
70
|
+
export declare function stopPresentation(): void;
|
|
22
71
|
export {};
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { getActiveVideoStreams, subscribeToTopic, publishData, consumeMessages, } from '~system/CommsApi';
|
|
1
2
|
import { getDomain, wrapSignedFetch } from '../fetch-utils';
|
|
2
3
|
const URLS = () => ({
|
|
3
4
|
STREAM_KEY: `https://comms-gatekeeper.decentraland.${getDomain()}/scene-stream-access`,
|
|
4
5
|
GET_DCL_CAST_INFO: `https://comms-gatekeeper.decentraland.${getDomain()}/cast/generate-stream-link`,
|
|
6
|
+
PRESENTERS: `https://comms-gatekeeper.decentraland.${getDomain()}/cast/presenters`,
|
|
7
|
+
PRESENTATION_BOT_TOKEN: `https://comms-gatekeeper.decentraland.${getDomain()}/cast/presentation-bot-token`,
|
|
8
|
+
PRESENTATION_SERVER: `https://cast-presenter-service.decentraland.${getDomain()}/presentations`,
|
|
5
9
|
});
|
|
6
10
|
export async function getStreamKey() {
|
|
7
11
|
return wrapSignedFetch({ url: URLS().STREAM_KEY }, { toCamelCase: true });
|
|
@@ -21,4 +25,184 @@ export async function resetStreamKey() {
|
|
|
21
25
|
export async function getDclCastInfo() {
|
|
22
26
|
return wrapSignedFetch({ url: URLS().GET_DCL_CAST_INFO }, { toCamelCase: true });
|
|
23
27
|
}
|
|
24
|
-
|
|
28
|
+
export async function getPresenters() {
|
|
29
|
+
return wrapSignedFetch({ url: URLS().PRESENTERS });
|
|
30
|
+
}
|
|
31
|
+
export async function promotePresenter(address) {
|
|
32
|
+
return wrapSignedFetch({
|
|
33
|
+
url: `${URLS().PRESENTERS}/${address}`,
|
|
34
|
+
init: { method: 'PUT', headers: {} },
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export async function ensurePresenterRole(playerAddress) {
|
|
38
|
+
const [error, presenters] = await getPresenters();
|
|
39
|
+
console.log('[DclCast] ensurePresenterRole - error:', error, 'presenters:', JSON.stringify(presenters), 'playerAddress:', playerAddress);
|
|
40
|
+
if (error || !presenters)
|
|
41
|
+
return;
|
|
42
|
+
const addr = playerAddress.toLowerCase();
|
|
43
|
+
const isPresenter = Array.isArray(presenters) ? presenters.includes(addr) : false;
|
|
44
|
+
console.log('[DclCast] isPresenter:', isPresenter, 'addr:', addr);
|
|
45
|
+
if (!isPresenter) {
|
|
46
|
+
const [promoteError] = await promotePresenter(addr);
|
|
47
|
+
console.log('[DclCast] promotePresenter result - error:', promoteError);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export async function getPresentationBotToken(streamingKey) {
|
|
51
|
+
return wrapSignedFetch({
|
|
52
|
+
url: URLS().PRESENTATION_BOT_TOKEN,
|
|
53
|
+
init: {
|
|
54
|
+
method: 'POST',
|
|
55
|
+
headers: { 'Content-Type': 'application/json' },
|
|
56
|
+
body: JSON.stringify({ streamingKey }),
|
|
57
|
+
},
|
|
58
|
+
}, { toCamelCase: true });
|
|
59
|
+
}
|
|
60
|
+
export async function startPresentation(url, livekitToken, livekitUrl) {
|
|
61
|
+
try {
|
|
62
|
+
const response = await fetch(URLS().PRESENTATION_SERVER, {
|
|
63
|
+
method: 'POST',
|
|
64
|
+
headers: { 'Content-Type': 'application/json' },
|
|
65
|
+
body: JSON.stringify({ url, livekitToken, livekitUrl }),
|
|
66
|
+
});
|
|
67
|
+
if (!response.ok) {
|
|
68
|
+
const body = await response.text();
|
|
69
|
+
return [body || 'Failed to start presentation', null];
|
|
70
|
+
}
|
|
71
|
+
return [null, undefined];
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
return [error.message ?? 'Failed to start presentation', null];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export const SOURCE_TYPE_LABELS = {
|
|
78
|
+
1: 'Camera',
|
|
79
|
+
2: 'Screen',
|
|
80
|
+
3: 'Presentation',
|
|
81
|
+
};
|
|
82
|
+
export const getSourceLabel = (sourceType) => SOURCE_TYPE_LABELS[sourceType] ?? 'Unknown';
|
|
83
|
+
const PRESENTATION_TOPIC = 'presentation';
|
|
84
|
+
const PRESENTATION_SOURCE_TYPE = 3;
|
|
85
|
+
const PRESENTATION_BOT_PREFIX = 'presentation-bot';
|
|
86
|
+
export function isPresentationBot(name) {
|
|
87
|
+
return name.startsWith(PRESENTATION_BOT_PREFIX);
|
|
88
|
+
}
|
|
89
|
+
export function hasPresentationTrack(tracks) {
|
|
90
|
+
return tracks.some(track => track.sourceType === PRESENTATION_SOURCE_TYPE || isPresentationBot(track.name));
|
|
91
|
+
}
|
|
92
|
+
export function groupTracksByParticipant(tracks) {
|
|
93
|
+
const map = new Map();
|
|
94
|
+
for (const track of tracks) {
|
|
95
|
+
const existing = map.get(track.name);
|
|
96
|
+
if (existing) {
|
|
97
|
+
existing.tracks.push(track);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
map.set(track.name, { name: track.name, identity: track.identity, tracks: [track] });
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return Array.from(map.values());
|
|
104
|
+
}
|
|
105
|
+
function getDisplayName(name) {
|
|
106
|
+
if (isPresentationBot(name))
|
|
107
|
+
return 'Presentation';
|
|
108
|
+
return name;
|
|
109
|
+
}
|
|
110
|
+
export async function getActiveStreams() {
|
|
111
|
+
const runtimeStreams = await getActiveVideoStreams({});
|
|
112
|
+
if (!runtimeStreams)
|
|
113
|
+
return;
|
|
114
|
+
return runtimeStreams.streams.map((stream) => {
|
|
115
|
+
const rawName = stream.name ?? stream.identity;
|
|
116
|
+
const displayName = getDisplayName(rawName);
|
|
117
|
+
return {
|
|
118
|
+
sid: stream.trackSid,
|
|
119
|
+
identity: stream.identity,
|
|
120
|
+
sourceType: stream.sourceType,
|
|
121
|
+
name: rawName,
|
|
122
|
+
customName: `${displayName} - ${getSourceLabel(stream.sourceType)}`,
|
|
123
|
+
};
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
export function subscribeToPresentationTopic() {
|
|
127
|
+
subscribeToTopic({ topic: PRESENTATION_TOPIC })
|
|
128
|
+
.then(() => {
|
|
129
|
+
requestPresentationState();
|
|
130
|
+
})
|
|
131
|
+
.catch(() => {
|
|
132
|
+
console.log('[DclCast] Failed to subscribe to presentation topic');
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
export function requestPresentationState() {
|
|
136
|
+
publishData({
|
|
137
|
+
topic: PRESENTATION_TOPIC,
|
|
138
|
+
data: JSON.stringify({ type: 'presentation:get-state' }),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
export async function consumePresentationMessages() {
|
|
142
|
+
try {
|
|
143
|
+
const response = await consumeMessages({ topic: PRESENTATION_TOPIC });
|
|
144
|
+
let latestState;
|
|
145
|
+
for (const msg of response) {
|
|
146
|
+
try {
|
|
147
|
+
const parsed = JSON.parse(msg.data);
|
|
148
|
+
if (parsed.type === 'presentation:state') {
|
|
149
|
+
latestState = {
|
|
150
|
+
id: parsed.id,
|
|
151
|
+
fileName: parsed.fileName,
|
|
152
|
+
currentSlide: parsed.currentSlide,
|
|
153
|
+
slideCount: parsed.slideCount,
|
|
154
|
+
fileType: parsed.fileType,
|
|
155
|
+
slideVideos: parsed.slideVideos ?? [],
|
|
156
|
+
videoState: parsed.videoState ?? 'idle',
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
else if (parsed.type === 'presentation:stopped') {
|
|
160
|
+
latestState = 'stopped';
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return latestState;
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
return undefined;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
export function nextSlide() {
|
|
173
|
+
publishData({
|
|
174
|
+
topic: PRESENTATION_TOPIC,
|
|
175
|
+
data: JSON.stringify({ type: 'presentation:navigate', action: 'next' }),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
export function prevSlide() {
|
|
179
|
+
publishData({
|
|
180
|
+
topic: PRESENTATION_TOPIC,
|
|
181
|
+
data: JSON.stringify({ type: 'presentation:navigate', action: 'prev' }),
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
export function playPresentationVideo(videoIndex) {
|
|
185
|
+
publishData({
|
|
186
|
+
topic: PRESENTATION_TOPIC,
|
|
187
|
+
data: JSON.stringify({ type: 'presentation:video:play', videoIndex }),
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
export function pausePresentationVideo() {
|
|
191
|
+
publishData({
|
|
192
|
+
topic: PRESENTATION_TOPIC,
|
|
193
|
+
data: JSON.stringify({ type: 'presentation:video:pause' }),
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
export function stopPresentationVideo() {
|
|
197
|
+
publishData({
|
|
198
|
+
topic: PRESENTATION_TOPIC,
|
|
199
|
+
data: JSON.stringify({ type: 'presentation:video:stop' }),
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
export function stopPresentation() {
|
|
203
|
+
publishData({
|
|
204
|
+
topic: PRESENTATION_TOPIC,
|
|
205
|
+
data: JSON.stringify({ type: 'presentation:stop' }),
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FkbWluLXRvb2xraXQtdWkvVmlkZW9Db250cm9sL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsZUFBZSxHQUNoQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJNUQsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNsQixVQUFVLEVBQUUseUNBQXlDLFNBQVMsRUFBRSxzQkFBc0I7SUFDdEYsaUJBQWlCLEVBQUUseUNBQXlDLFNBQVMsRUFBRSw0QkFBNEI7SUFDbkcsVUFBVSxFQUFFLHlDQUF5QyxTQUFTLEVBQUUsa0JBQWtCO0lBQ2xGLHNCQUFzQixFQUFFLHlDQUF5QyxTQUFTLEVBQUUsOEJBQThCO0lBQzFHLG1CQUFtQixFQUFFLCtDQUErQyxTQUFTLEVBQUUsZ0JBQWdCO0NBQ2hHLENBQUMsQ0FBQztBQW1CSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVk7SUFDaEMsT0FBTyxlQUFlLENBQW9CLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDL0YsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCO0lBQ3JDLE9BQU8sZUFBZSxDQUNwQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDakUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFB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QUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBnZXRBY3RpdmVWaWRlb1N0cmVhbXMsXG4gIHN1YnNjcmliZVRvVG9waWMsXG4gIHB1Ymxpc2hEYXRhLFxuICBjb25zdW1lTWVzc2FnZXMsXG59IGZyb20gJ35zeXN0ZW0vQ29tbXNBcGknO1xuaW1wb3J0IHsgZ2V0RG9tYWluLCB3cmFwU2lnbmVkRmV0Y2ggfSBmcm9tICcuLi9mZXRjaC11dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJlc3VsdCB9IGZyb20gJy4uL2ZldGNoLXV0aWxzJztcbmltcG9ydCB0eXBlIHsgUHJlc2VudGF0aW9uU3RhdGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IFVSTFMgPSAoKSA9PiAoe1xuICBTVFJFQU1fS0VZOiBgaHR0cHM6Ly9jb21tcy1nYXRla2VlcGVyLmRlY2VudHJhbGFuZC4ke2dldERvbWFpbigpfS9zY2VuZS1zdHJlYW0tYWNjZXNzYCxcbiAgR0VUX0RDTF9DQVNUX0lORk86IGBodHRwczovL2NvbW1zLWdhdGVrZWVwZXIuZGVjZW50cmFsYW5kLiR7Z2V0RG9tYWluKCl9L2Nhc3QvZ2VuZXJhdGUtc3RyZWFtLWxpbmtgLFxuICBQUkVTRU5URVJTOiBgaHR0cHM6Ly9jb21tcy1nYXRla2VlcGVyLmRlY2VudHJhbGFuZC4ke2dldERvbWFpbigpfS9jYXN0L3ByZXNlbnRlcnNgLFxuICBQUkVTRU5UQVRJT05fQk9UX1RPS0VOOiBgaHR0cHM6Ly9jb21tcy1nYXRla2VlcGVyLmRlY2VudHJhbGFuZC4ke2dldERvbWFpbigpfS9jYXN0L3ByZXNlbnRhdGlvbi1ib3QtdG9rZW5gLFxuICBQUkVTRU5UQVRJT05fU0VSVkVSOiBgaHR0cHM6Ly9jYXN0LXByZXNlbnRlci1zZXJ2aWNlLmRlY2VudHJhbGFuZC4ke2dldERvbWFpbigpfS9wcmVzZW50YXRpb25zYCxcbn0pO1xuXG50eXBlIFN0cmVhbUtleVJlc3BvbnNlID0ge1xuICBzdHJlYW1pbmdVcmw6IHN0cmluZztcbiAgc3RyZWFtaW5nS2V5OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogbnVtYmVyO1xuICBlbmRzQXQ6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIERjbENhc3RSZXNwb25zZSA9IHtcbiAgc3RyZWFtTGluazogc3RyaW5nO1xuICB3YXRjaGVyTGluazogc3RyaW5nO1xuICBzdHJlYW1pbmdLZXk6IHN0cmluZztcbiAgcGxhY2VJZDogc3RyaW5nO1xuICBwbGFjZU5hbWU6IHN0cmluZztcbiAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIGV4cGlyZXNJbkRheXM6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTdHJlYW1LZXkoKTogUHJvbWlzZTxSZXN1bHQ8U3RyZWFtS2V5UmVzcG9uc2UsIHN0cmluZz4+IHtcbiAgcmV0dXJuIHdyYXBTaWduZWRGZXRjaDxTdHJlYW1LZXlSZXNwb25zZT4oeyB1cmw6IFVSTFMoKS5TVFJFQU1fS0VZIH0sIHsgdG9DYW1lbENhc2U6IHRydWUgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVN0cmVhbUtleSgpOiBQcm9taXNlPFJlc3VsdDxTdHJlYW1LZXlSZXNwb25zZSwgc3RyaW5nPj4ge1xuICByZXR1cm4gd3JhcFNpZ25lZEZldGNoPFN0cmVhbUtleVJlc3BvbnNlPihcbiAgICB7IHVybDogVVJMUygpLlNUUkVBTV9LRVksIGluaXQ6IHsgbWV0aG9kOiAnUE9TVCcsIGhlYWRlcnM6IHt9IH0gfSxcbiAgICB7IHRvQ2FtZWxDYXNlOiB0cnVlIH0sXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXZva2VTdHJlYW1LZXkoKTogUHJvbWlzZTxSZXN1bHQ8U3RyZWFtS2V5UmVzcG9uc2UsIHN0cmluZz4+IHtcbiAgcmV0dXJuIHdyYXBTaWduZWRGZXRjaDxTdHJlYW1LZXlSZXNwb25zZT4oe1xuICAgIHVybDogVVJMUygpLlNUUkVBTV9LRVksXG4gICAgaW5pdDogeyBtZXRob2Q6ICdERUxFVEUnLCBoZWFkZXJzOiB7fSB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc2V0U3RyZWFtS2V5KCk6IFByb21pc2U8UmVzdWx0PFN0cmVhbUtleVJlc3BvbnNlLCBzdHJpbmc+PiB7XG4gIHJldHVybiB3cmFwU2lnbmVkRmV0Y2g8U3RyZWFtS2V5UmVzcG9uc2U+KFxuICAgIHsgdXJsOiBVUkxTKCkuU1RSRUFNX0tFWSwgaW5pdDogeyBtZXRob2Q6ICdQVVQnLCBoZWFkZXJzOiB7fSB9IH0sXG4gICAgeyB0b0NhbWVsQ2FzZTogdHJ1ZSB9LFxuICApO1xufVxuXG5leHBvcnQgdHlwZSBEY2xDYXN0VHJhY2tzUmVzcG9uc2UgPSB7XG4gIHBhcnRpY2lwYW50czoge1xuICAgIGlkZW50aXR5OiBzdHJpbmc7XG4gICAgdHJhY2tzOiB7XG4gICAgICBzaWQ6IHN0cmluZztcbiAgICAgIHR5cGU6ICdBVURJTycgfCAnVklERU8nO1xuICAgICAgc291cmNlOiAnTUlDUk9QSE9ORScgfCAnQ0FNRVJBJyB8ICdTQ1JFRU5fU0hBUkUnO1xuICAgIH1bXTtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH1bXTtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREY2xDYXN0SW5mbygpOiBQcm9taXNlPFJlc3VsdDxEY2xDYXN0UmVzcG9uc2UsIHN0cmluZz4+IHtcbiAgcmV0dXJuIHdyYXBTaWduZWRGZXRjaDxEY2xDYXN0UmVzcG9uc2U+KHsgdXJsOiBVUkxTKCkuR0VUX0RDTF9DQVNUX0lORk8gfSwgeyB0b0NhbWVsQ2FzZTogdHJ1ZSB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFByZXNlbnRlcnMoKTogUHJvbWlzZTxSZXN1bHQ8c3RyaW5nW10sIHN0cmluZz4+IHtcbiAgcmV0dXJuIHdyYXBTaWduZWRGZXRjaDxzdHJpbmdbXT4oeyB1cmw6IFVSTFMoKS5QUkVTRU5URVJTIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvbW90ZVByZXNlbnRlcihhZGRyZXNzOiBzdHJpbmcpOiBQcm9taXNlPFJlc3VsdDx2b2lkLCBzdHJpbmc+PiB7XG4gIHJldHVybiB3cmFwU2lnbmVkRmV0Y2g8dm9pZD4oe1xuICAgIHVybDogYCR7VVJMUygpLlBSRVNFTlRFUlN9LyR7YWRkcmVzc31gLFxuICAgIGluaXQ6IHsgbWV0aG9kOiAnUFVUJywgaGVhZGVyczoge30gfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVQcmVzZW50ZXJSb2xlKHBsYXllckFkZHJlc3M6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBbZXJyb3IsIHByZXNlbnRlcnNdID0gYXdhaXQgZ2V0UHJlc2VudGVycygpO1xuICBjb25zb2xlLmxvZyhcbiAgICAnW0RjbENhc3RdIGVuc3VyZVByZXNlbnRlclJvbGUgLSBlcnJvcjonLFxuICAgIGVycm9yLFxuICAgICdwcmVzZW50ZXJzOicsXG4gICAgSlNPTi5zdHJpbmdpZnkocHJlc2VudGVycyksXG4gICAgJ3BsYXllckFkZHJlc3M6JyxcbiAgICBwbGF5ZXJBZGRyZXNzLFxuICApO1xuICBpZiAoZXJyb3IgfHwgIXByZXNlbnRlcnMpIHJldHVybjtcblxuICBjb25zdCBhZGRyID0gcGxheWVyQWRkcmVzcy50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBpc1ByZXNlbnRlciA9IEFycmF5LmlzQXJyYXkocHJlc2VudGVycykgPyBwcmVzZW50ZXJzLmluY2x1ZGVzKGFkZHIpIDogZmFsc2U7XG4gIGNvbnNvbGUubG9nKCdbRGNsQ2FzdF0gaXNQcmVzZW50ZXI6JywgaXNQcmVzZW50ZXIsICdhZGRyOicsIGFkZHIpO1xuXG4gIGlmICghaXNQcmVzZW50ZXIpIHtcbiAgICBjb25zdCBbcHJvbW90ZUVycm9yXSA9IGF3YWl0IHByb21vdGVQcmVzZW50ZXIoYWRkcik7XG4gICAgY29uc29sZS5sb2coJ1tEY2xDYXN0XSBwcm9tb3RlUHJlc2VudGVyIHJlc3VsdCAtIGVycm9yOicsIHByb21vdGVFcnJvcik7XG4gIH1cbn1cblxudHlwZSBQcmVzZW50YXRpb25Cb3RUb2tlblJlc3BvbnNlID0ge1xuICB1cmw6IHN0cmluZztcbiAgdG9rZW46IHN0cmluZztcbiAgcm9vbUlkOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UHJlc2VudGF0aW9uQm90VG9rZW4oXG4gIHN0cmVhbWluZ0tleTogc3RyaW5nLFxuKTogUHJvbWlzZTxSZXN1bHQ8UHJlc2VudGF0aW9uQm90VG9rZW5SZXNwb25zZSwgc3RyaW5nPj4ge1xuICByZXR1cm4gd3JhcFNpZ25lZEZldGNoPFByZXNlbnRhdGlvbkJvdFRva2VuUmVzcG9uc2U+KFxuICAgIHtcbiAgICAgIHVybDogVVJMUygpLlBSRVNFTlRBVElPTl9CT1RfVE9LRU4sXG4gICAgICBpbml0OiB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBzdHJlYW1pbmdLZXkgfSksXG4gICAgICB9LFxuICAgIH0sXG4gICAgeyB0b0NhbWVsQ2FzZTogdHJ1ZSB9LFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRQcmVzZW50YXRpb24oXG4gIHVybDogc3RyaW5nLFxuICBsaXZla2l0VG9rZW46IHN0cmluZyxcbiAgbGl2ZWtpdFVybDogc3RyaW5nLFxuKTogUHJvbWlzZTxSZXN1bHQ8dm9pZCwgc3RyaW5nPj4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goVVJMUygpLlBSRVNFTlRBVElPTl9TRVJWRVIsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHVybCwgbGl2ZWtpdFRva2VuLCBsaXZla2l0VXJsIH0pLFxuICAgIH0pO1xuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnN0IGJvZHkgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgICByZXR1cm4gW2JvZHkgfHwgJ0ZhaWxlZCB0byBzdGFydCBwcmVzZW50YXRpb24nLCBudWxsXTtcbiAgICB9XG4gICAgcmV0dXJuIFtudWxsLCB1bmRlZmluZWQgYXMgdW5rbm93biBhcyB2b2lkXTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gWyhlcnJvciBhcyBFcnJvcikubWVzc2FnZSA/PyAnRmFpbGVkIHRvIHN0YXJ0IHByZXNlbnRhdGlvbicsIG51bGxdO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIEZsYXR0ZW5lZFRyYWNrID0ge1xuICBzaWQ6IHN0cmluZztcbiAgaWRlbnRpdHk6IHN0cmluZztcbiAgc291cmNlVHlwZTogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIGN1c3RvbU5hbWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFBhcnRpY2lwYW50ID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGlkZW50aXR5OiBzdHJpbmc7XG4gIHRyYWNrczogRmxhdHRlbmVkVHJhY2tbXTtcbn07XG5cbmV4cG9ydCBjb25zdCBTT1VSQ0VfVFlQRV9MQUJFTFM6IFJlY29yZDxudW1iZXIsIHN0cmluZz4gPSB7XG4gIDE6ICdDYW1lcmEnLFxuICAyOiAnU2NyZWVuJyxcbiAgMzogJ1ByZXNlbnRhdGlvbicsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U291cmNlTGFiZWwgPSAoc291cmNlVHlwZTogbnVtYmVyKSA9PiBTT1VSQ0VfVFlQRV9MQUJFTFNbc291cmNlVHlwZV0gPz8gJ1Vua25vd24nO1xuXG5jb25zdCBQUkVTRU5UQVRJT05fVE9QSUMgPSAncHJlc2VudGF0aW9uJztcbmNvbnN0IFBSRVNFTlRBVElPTl9TT1VSQ0VfVFlQRSA9IDM7XG5jb25zdCBQUkVTRU5UQVRJT05fQk9UX1BSRUZJWCA9ICdwcmVzZW50YXRpb24tYm90JztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJlc2VudGF0aW9uQm90KG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gbmFtZS5zdGFydHNXaXRoKFBSRVNFTlRBVElPTl9CT1RfUFJFRklYKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1ByZXNlbnRhdGlvblRyYWNrKHRyYWNrczogRmxhdHRlbmVkVHJhY2tbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHJhY2tzLnNvbWUoXG4gICAgdHJhY2sgPT4gdHJhY2suc291cmNlVHlwZSA9PT0gUFJFU0VOVEFUSU9OX1NPVVJDRV9UWVBFIHx8IGlzUHJlc2VudGF0aW9uQm90KHRyYWNrLm5hbWUpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBUcmFja3NCeVBhcnRpY2lwYW50KHRyYWNrczogRmxhdHRlbmVkVHJhY2tbXSk6IFBhcnRpY2lwYW50W10ge1xuICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgUGFydGljaXBhbnQ+KCk7XG4gIGZvciAoY29uc3QgdHJhY2sgb2YgdHJhY2tzKSB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBtYXAuZ2V0KHRyYWNrLm5hbWUpO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgZXhpc3RpbmcudHJhY2tzLnB1c2godHJhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBtYXAuc2V0KHRyYWNrLm5hbWUsIHsgbmFtZTogdHJhY2submFtZSwgaWRlbnRpdHk6IHRyYWNrLmlkZW50aXR5LCB0cmFja3M6IFt0cmFja10gfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBBcnJheS5mcm9tKG1hcC52YWx1ZXMoKSk7XG59XG5cbmZ1bmN0aW9uIGdldERpc3BsYXlOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChpc1ByZXNlbnRhdGlvbkJvdChuYW1lKSkgcmV0dXJuICdQcmVzZW50YXRpb24nO1xuICByZXR1cm4gbmFtZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFjdGl2ZVN0cmVhbXMoKTogUHJvbWlzZTxGbGF0dGVuZWRUcmFja1tdIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IHJ1bnRpbWVTdHJlYW1zID0gYXdhaXQgZ2V0QWN0aXZlVmlkZW9TdHJlYW1zKHt9KTtcbiAgaWYgKCFydW50aW1lU3RyZWFtcykgcmV0dXJuO1xuICByZXR1cm4gcnVudGltZVN0cmVhbXMuc3RyZWFtcy5tYXAoXG4gICAgKHN0cmVhbTogeyB0cmFja1NpZDogc3RyaW5nOyBpZGVudGl0eTogc3RyaW5nOyBzb3VyY2VUeXBlOiBudW1iZXI7IG5hbWU/OiBzdHJpbmcgfSkgPT4ge1xuICAgICAgY29uc3QgcmF3TmFtZSA9IHN0cmVhbS5uYW1lID8/IHN0cmVhbS5pZGVudGl0eTtcbiAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gZ2V0RGlzcGxheU5hbWUocmF3TmFtZSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzaWQ6IHN0cmVhbS50cmFja1NpZCxcbiAgICAgICAgaWRlbnRpdHk6IHN0cmVhbS5pZGVudGl0eSxcbiAgICAgICAgc291cmNlVHlwZTogc3RyZWFtLnNvdXJjZVR5cGUsXG4gICAgICAgIG5hbWU6IHJhd05hbWUsXG4gICAgICAgIGN1c3RvbU5hbWU6IGAke2Rpc3BsYXlOYW1lfSAtICR7Z2V0U291cmNlTGFiZWwoc3RyZWFtLnNvdXJjZVR5cGUpfWAsXG4gICAgICB9O1xuICAgIH0sXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdWJzY3JpYmVUb1ByZXNlbnRhdGlvblRvcGljKCk6IHZvaWQge1xuICBzdWJzY3JpYmVUb1RvcGljKHsgdG9waWM6IFBSRVNFTlRBVElPTl9UT1BJQyB9KVxuICAgIC50aGVuKCgpID0+IHtcbiAgICAgIC8vIFJlcXVlc3QgY3VycmVudCBzdGF0ZSBmcm9tIGJvdCBzbyBsYXRlIGpvaW5lcnMgZ2V0IHRoZSBwcmVzZW50YXRpb24gc3RhdGVcbiAgICAgIHJlcXVlc3RQcmVzZW50YXRpb25TdGF0ZSgpO1xuICAgIH0pXG4gICAgLmNhdGNoKCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdbRGNsQ2FzdF0gRmFpbGVkIHRvIHN1YnNjcmliZSB0byBwcmVzZW50YXRpb24gdG9waWMnKTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVlc3RQcmVzZW50YXRpb25TdGF0ZSgpOiB2b2lkIHtcbiAgcHVibGlzaERhdGEoe1xuICAgIHRvcGljOiBQUkVTRU5UQVRJT05fVE9QSUMsXG4gICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAncHJlc2VudGF0aW9uOmdldC1zdGF0ZScgfSksXG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29uc3VtZVByZXNlbnRhdGlvbk1lc3NhZ2VzKCk6IFByb21pc2U8XG4gIFByZXNlbnRhdGlvblN0YXRlIHwgJ3N0b3BwZWQnIHwgdW5kZWZpbmVkXG4+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNvbnN1bWVNZXNzYWdlcyh7IHRvcGljOiBQUkVTRU5UQVRJT05fVE9QSUMgfSk7XG5cbiAgICBsZXQgbGF0ZXN0U3RhdGU6IFByZXNlbnRhdGlvblN0YXRlIHwgJ3N0b3BwZWQnIHwgdW5kZWZpbmVkO1xuICAgIGZvciAoY29uc3QgbXNnIG9mIHJlc3BvbnNlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKG1zZy5kYXRhKTtcbiAgICAgICAgaWYgKHBhcnNlZC50eXBlID09PSAncHJlc2VudGF0aW9uOnN0YXRlJykge1xuICAgICAgICAgIGxhdGVzdFN0YXRlID0ge1xuICAgICAgICAgICAgaWQ6IHBhcnNlZC5pZCxcbiAgICAgICAgICAgIGZpbGVOYW1lOiBwYXJzZWQuZmlsZU5hbWUsXG4gICAgICAgICAgICBjdXJyZW50U2xpZGU6IHBhcnNlZC5jdXJyZW50U2xpZGUsXG4gICAgICAgICAgICBzbGlkZUNvdW50OiBwYXJzZWQuc2xpZGVDb3VudCxcbiAgICAgICAgICAgIGZpbGVUeXBlOiBwYXJzZWQuZmlsZVR5cGUsXG4gICAgICAgICAgICBzbGlkZVZpZGVvczogcGFyc2VkLnNsaWRlVmlkZW9zID8/IFtdLFxuICAgICAgICAgICAgdmlkZW9TdGF0ZTogcGFyc2VkLnZpZGVvU3RhdGUgPz8gJ2lkbGUnLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAocGFyc2VkLnR5cGUgPT09ICdwcmVzZW50YXRpb246c3RvcHBlZCcpIHtcbiAgICAgICAgICBsYXRlc3RTdGF0ZSA9ICdzdG9wcGVkJztcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIFNraXAgbWFsZm9ybWVkIGluZGl2aWR1YWwgbWVzc2FnZXNcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxhdGVzdFN0YXRlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIGNvbnN1bWVNZXNzYWdlcyBmYWlsZWQgb3Igb3V0ZXIgSlNPTiBwYXJzZSBmYWlsZWQg4oCUIHJldHVybiB1bmRlZmluZWRcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXh0U2xpZGUoKTogdm9pZCB7XG4gIHB1Ymxpc2hEYXRhKHtcbiAgICB0b3BpYzogUFJFU0VOVEFUSU9OX1RPUElDLFxuICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ3ByZXNlbnRhdGlvbjpuYXZpZ2F0ZScsIGFjdGlvbjogJ25leHQnIH0pLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXZTbGlkZSgpOiB2b2lkIHtcbiAgcHVibGlzaERhdGEoe1xuICAgIHRvcGljOiBQUkVTRU5UQVRJT05fVE9QSUMsXG4gICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAncHJlc2VudGF0aW9uOm5hdmlnYXRlJywgYWN0aW9uOiAncHJldicgfSksXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGxheVByZXNlbnRhdGlvblZpZGVvKHZpZGVvSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICBwdWJsaXNoRGF0YSh7XG4gICAgdG9waWM6IFBSRVNFTlRBVElPTl9UT1BJQyxcbiAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdwcmVzZW50YXRpb246dmlkZW86cGxheScsIHZpZGVvSW5kZXggfSksXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF1c2VQcmVzZW50YXRpb25WaWRlbygpOiB2b2lkIHtcbiAgcHVibGlzaERhdGEoe1xuICAgIHRvcGljOiBQUkVTRU5UQVRJT05fVE9QSUMsXG4gICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAncHJlc2VudGF0aW9uOnZpZGVvOnBhdXNlJyB9KSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9wUHJlc2VudGF0aW9uVmlkZW8oKTogdm9pZCB7XG4gIHB1Ymxpc2hEYXRhKHtcbiAgICB0b3BpYzogUFJFU0VOVEFUSU9OX1RPUElDLFxuICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ3ByZXNlbnRhdGlvbjp2aWRlbzpzdG9wJyB9KSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9wUHJlc2VudGF0aW9uKCk6IHZvaWQge1xuICBwdWJsaXNoRGF0YSh7XG4gICAgdG9waWM6IFBSRVNFTlRBVElPTl9UT1BJQyxcbiAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdwcmVzZW50YXRpb246c3RvcCcgfSksXG4gIH0pO1xufVxuIl19
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { IEngine } from '@dcl/ecs';
|
|
1
|
+
import { type IEngine } from '@dcl/ecs';
|
|
2
2
|
import ReactEcs from '@dcl/react-ecs';
|
|
3
3
|
import { Color4 } from '@dcl/sdk/math';
|
|
4
|
-
import { State } from '../types';
|
|
4
|
+
import { type State } from '../types';
|
|
5
5
|
export declare const ICONS: {
|
|
6
|
-
readonly VIDEO_CONTROL:
|
|
7
|
-
readonly PREVIOUS_BUTTON:
|
|
8
|
-
readonly FORWARD_BUTTON:
|
|
9
|
-
readonly PLAY_BUTTON:
|
|
10
|
-
readonly MUTE:
|
|
11
|
-
readonly LOOP:
|
|
12
|
-
readonly VOLUME_MINUS_BUTTON:
|
|
13
|
-
readonly VOLUME_PLUS_BUTTON:
|
|
14
|
-
readonly VIDEO_SOURCE:
|
|
15
|
-
readonly LIVE_SOURCE:
|
|
16
|
-
readonly DCL_CAST_SOURCE:
|
|
17
|
-
readonly INFO:
|
|
6
|
+
readonly VIDEO_CONTROL: string;
|
|
7
|
+
readonly PREVIOUS_BUTTON: string;
|
|
8
|
+
readonly FORWARD_BUTTON: string;
|
|
9
|
+
readonly PLAY_BUTTON: string;
|
|
10
|
+
readonly MUTE: string;
|
|
11
|
+
readonly LOOP: string;
|
|
12
|
+
readonly VOLUME_MINUS_BUTTON: string;
|
|
13
|
+
readonly VOLUME_PLUS_BUTTON: string;
|
|
14
|
+
readonly VIDEO_SOURCE: string;
|
|
15
|
+
readonly LIVE_SOURCE: string;
|
|
16
|
+
readonly DCL_CAST_SOURCE: string;
|
|
17
|
+
readonly INFO: string;
|
|
18
18
|
};
|
|
19
19
|
export declare const VOLUME_STEP = 0.1;
|
|
20
20
|
export declare const DEFAULT_VOLUME = 1;
|
|
@@ -23,7 +23,8 @@ export declare const COLORS: {
|
|
|
23
23
|
readonly GRAY: Color4.MutableColor4;
|
|
24
24
|
readonly SUCCESS: Color4.MutableColor4;
|
|
25
25
|
};
|
|
26
|
-
export declare function VideoControl({ engine, state }: {
|
|
26
|
+
export declare function VideoControl({ engine, state, playerAddress, }: {
|
|
27
27
|
engine: IEngine;
|
|
28
28
|
state: State;
|
|
29
|
+
playerAddress: string | undefined;
|
|
29
30
|
}): ReactEcs.JSX.Element;
|