@dcl/asset-packs 2.16.2 → 2.16.3
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 +445 -325
- package/dist/admin-toolkit-ui/Active.d.ts +3 -2
- package/dist/admin-toolkit-ui/Active.js +1 -1
- package/dist/admin-toolkit-ui/Card.d.ts +2 -1
- package/dist/admin-toolkit-ui/Card.js +1 -1
- package/dist/admin-toolkit-ui/FeedbackButton.js +2 -2
- package/dist/admin-toolkit-ui/Loading.d.ts +3 -2
- package/dist/admin-toolkit-ui/Loading.js +1 -1
- package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.d.ts +1 -1
- package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.js +1 -1
- package/dist/admin-toolkit-ui/ModerationControl/BanUserDescription.js +1 -1
- package/dist/admin-toolkit-ui/ModerationControl/RemoveAdminConfirmation.js +4 -4
- package/dist/admin-toolkit-ui/ModerationControl/UsersList.js +16 -14
- package/dist/admin-toolkit-ui/ModerationControl/index.d.ts +0 -7
- package/dist/admin-toolkit-ui/ModerationControl/index.js +4 -9
- package/dist/admin-toolkit-ui/SmartItemsControl.js +15 -33
- package/dist/admin-toolkit-ui/TextAnnouncementsControl.js +14 -12
- package/dist/admin-toolkit-ui/VideoControl/DclCast/CompactDclCast.js +7 -9
- package/dist/admin-toolkit-ui/VideoControl/DclCast/DclCastInfo.js +4 -3
- package/dist/admin-toolkit-ui/VideoControl/DclCast/index.d.ts +0 -14
- package/dist/admin-toolkit-ui/VideoControl/DclCast/index.js +32 -136
- package/dist/admin-toolkit-ui/VideoControl/DclCast/presentation-detector.d.ts +2 -0
- package/dist/admin-toolkit-ui/VideoControl/DclCast/presentation-detector.js +116 -0
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.d.ts +1 -1
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.js +2 -2
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/GenerateStreamKey.d.ts +1 -1
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/GenerateStreamKey.js +2 -2
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/ShowStreamKey.js +5 -4
- package/dist/admin-toolkit-ui/VideoControl/LiveStream/index.js +2 -2
- package/dist/admin-toolkit-ui/VideoControl/api.d.ts +5 -2
- package/dist/admin-toolkit-ui/VideoControl/api.js +22 -12
- package/dist/admin-toolkit-ui/VideoControl/index.js +14 -15
- package/dist/admin-toolkit-ui/VideoControl/utils.d.ts +2 -0
- package/dist/admin-toolkit-ui/VideoControl/utils.js +15 -3
- package/dist/admin-toolkit-ui/actions.d.ts +42 -0
- package/dist/admin-toolkit-ui/actions.js +138 -0
- package/dist/admin-toolkit-ui/admin-message-bus.js +17 -2
- package/dist/admin-toolkit-ui/index.d.ts +0 -3
- package/dist/admin-toolkit-ui/index.js +20 -93
- package/dist/admin-toolkit-ui/store.d.ts +2 -0
- package/dist/admin-toolkit-ui/store.js +45 -0
- package/dist/admin-toolkit-ui/types.d.ts +22 -5
- package/dist/admin-toolkit-ui/types.js +1 -2
- package/dist/bin/index.js +445 -325
- package/package.json +1 -1
- package/dist/admin-toolkit-ui/RewardsControl.d.ts +0 -7
- package/dist/admin-toolkit-ui/RewardsControl.js +0 -95
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getComponents, LIVEKIT_STREAM_SRC, VIDEO_URL_TYPE } from '../../definitions';
|
|
2
2
|
import { getExplorerComponents } from '../../components';
|
|
3
|
-
import { state } from '../
|
|
3
|
+
import { state } from '../store';
|
|
4
4
|
import { getAdminMessageBus } from '../admin-message-bus';
|
|
5
5
|
import { DEFAULT_VOLUME } from '.';
|
|
6
6
|
export function getAdminToolkitVideoControl(engine) {
|
|
@@ -78,8 +78,20 @@ export function useSelectedVideoPlayer(engine) {
|
|
|
78
78
|
const videoPlayer = VideoPlayer.getOrNull(entity);
|
|
79
79
|
return videoPlayer ? [entity, videoPlayer] : null;
|
|
80
80
|
}
|
|
81
|
+
export const CAST_SRC_PREFIX = 'livekit-video://';
|
|
82
|
+
export function findActiveCastScreenIndex(engine) {
|
|
83
|
+
const { VideoPlayer } = getExplorerComponents(engine);
|
|
84
|
+
const videoPlayers = getVideoPlayers(engine);
|
|
85
|
+
for (let i = 0; i < videoPlayers.length; i++) {
|
|
86
|
+
const entity = videoPlayers[i].entity;
|
|
87
|
+
const video = VideoPlayer.getOrNull(entity);
|
|
88
|
+
if (video?.src?.startsWith(CAST_SRC_PREFIX))
|
|
89
|
+
return i;
|
|
90
|
+
}
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
81
93
|
export function isDclCast(url) {
|
|
82
|
-
return url.startsWith(
|
|
94
|
+
return url.startsWith(CAST_SRC_PREFIX) && state.videoControl.selectedStream === 'dcl-cast';
|
|
83
95
|
}
|
|
84
96
|
export function isLiveStream(url) {
|
|
85
97
|
return url.startsWith(LIVEKIT_STREAM_SRC) && state.videoControl.selectedStream === 'live';
|
|
@@ -87,4 +99,4 @@ export function isLiveStream(url) {
|
|
|
87
99
|
export function isVideoUrl(url) {
|
|
88
100
|
return url.startsWith(VIDEO_URL_TYPE);
|
|
89
101
|
}
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvdXRpbHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sR0FBRyxDQUFDO0FBV25DLE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxNQUFlO0lBQ3pELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM1RSxPQUFPLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzFGLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixNQUFlO0lBRWYsTUFBTSx3QkFBd0IsR0FBRywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyRSxJQUNFLENBQUMsd0JBQXdCO1FBQ3pCLENBQUMsd0JBQXdCLENBQUMsWUFBWTtRQUN0Qyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUM7UUFFbEQsT0FBTyxFQUFFLENBQUM7SUFFWixPQUFPLEtBQUssQ0FBQyxJQUFJ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QUM1RixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZWVwUmVhZG9ubHlPYmplY3QsIEVudGl0eSwgSUVuZ2luZSwgUEJWaWRlb1BsYXllciB9IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCB0eXBlIHsgQWRtaW5Ub29scyB9IGZyb20gJy4uLy4uL2RlZmluaXRpb25zJztcbmltcG9ydCB7IGdldENvbXBvbmVudHMsIExJVkVLSVRfU1RSRUFNX1NSQywgVklERU9fVVJMX1RZUEUgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBnZXRFeHBsb3JlckNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IHN0YXRlIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgZ2V0QWRtaW5NZXNzYWdlQnVzIH0gZnJvbSAnLi4vYWRtaW4tbWVzc2FnZS1idXMnO1xuaW1wb3J0IHsgREVGQVVMVF9WT0xVTUUgfSBmcm9tICcuJztcblxuaW50ZXJmYWNlIFZpZGVvUGxheWVyQ29udHJvbHMge1xuICBwbGF5KCk6IHZvaWQ7XG4gIHBhdXNlKCk6IHZvaWQ7XG4gIHJlc3RhcnQoKTogdm9pZDtcbiAgc2V0Vm9sdW1lKHZvbHVtZTogbnVtYmVyKTogdm9pZDtcbiAgc2V0U291cmNlKHVybDogc3RyaW5nKTogdm9pZDtcbiAgc2V0TG9vcChsb29wOiBib29sZWFuKTogdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFkbWluVG9vbGtpdFZpZGVvQ29udHJvbChlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgeyBBZG1pblRvb2xzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IGFkbWluVG9vbGtpdEVudGl0aWVzID0gQXJyYXkuZnJvbShlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKEFkbWluVG9vbHMpKTtcbiAgcmV0dXJuIGFkbWluVG9vbGtpdEVudGl0aWVzLmxlbmd0aCA+IDAgPyBhZG1pblRvb2xraXRFbnRpdGllc1swXVsxXS52aWRlb0NvbnRyb2wgOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmlkZW9QbGF5ZXJzKFxuICBlbmdpbmU6IElFbmdpbmUsXG4pOiBOb25OdWxsYWJsZTxBZG1pblRvb2xzWyd2aWRlb0NvbnRyb2wnXVsndmlkZW9QbGF5ZXJzJ10+IHtcbiAgY29uc3QgYWRtaW5Ub29sa2l0VmlkZW9Db250cm9sID0gZ2V0QWRtaW5Ub29sa2l0VmlkZW9Db250cm9sKGVuZ2luZSk7XG5cbiAgaWYgKFxuICAgICFhZG1pblRvb2xraXRWaWRlb0NvbnRyb2wgfHxcbiAgICAhYWRtaW5Ub29sa2l0VmlkZW9Db250cm9sLnZpZGVvUGxheWVycyB8fFxuICAgIGFkbWluVG9vbGtpdFZpZGVvQ29udHJvbC52aWRlb1BsYXllcnMubGVuZ3RoID09PSAwXG4gIClcbiAgICByZXR1cm4gW107XG5cbiAgcmV0dXJuIEFycmF5LmZyb20oYWRtaW5Ub29sa2l0VmlkZW9Db250cm9sLnZpZGVvUGxheWVycyk7XG59XG5cbmZ1bmN0aW9uIGNoZWNrVmlkZW9QbGF5ZXJTb3VuZChlbnRpdHk6IEVudGl0eSwgZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IHZpZGVvQ29udHJvbCA9IGdldEFkbWluVG9vbGtpdFZpZGVvQ29udHJvbChlbmdpbmUpO1xuICBjb25zdCB7IFZpZGVvUGxheWVyIH0gPSBnZXRFeHBsb3JlckNvbXBvbmVudHMoZW5naW5lKTtcblxuICBpZiAodmlkZW9Db250cm9sPy5kaXNhYmxlVmlkZW9QbGF5ZXJzU291bmQpIHtcbiAgICBjb25zdCB2aWRlbyA9IFZpZGVvUGxheWVyLmdldChlbnRpdHkpO1xuICAgIGlmICh2aWRlby52b2x1bWUpIHtcbiAgICAgIFZpZGVvUGxheWVyLmdldE11dGFibGUoZW50aXR5KS52b2x1bWUgPSAwO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVmlkZW9QbGF5ZXJDb250cm9scyhlbnRpdHk6IEVudGl0eSwgZW5naW5lOiBJRW5naW5lKTogVmlkZW9QbGF5ZXJDb250cm9scyB7XG4gIGNvbnN0IHZpZGVvQ29udHJvbCA9IGdldEFkbWluVG9vbGtpdFZpZGVvQ29udHJvbChlbmdpbmUpO1xuICBjb25zdCB7IFZpZGVvUGxheWVyIH0gPSBnZXRFeHBsb3JlckNvbXBvbmVudHMoZW5naW5lKTtcblxuICBjaGVja1ZpZGVvUGxheWVyU291bmQoZW50aXR5LCBlbmdpbmUpO1xuXG4gIHJldHVybiB7XG4gICAgcGxheTogKCkgPT4ge1xuICAgICAgZ2V0QWRtaW5NZXNzYWdlQnVzKCkuZW1pdFNldFZpZGVvKGVudGl0eSwgeyBwbGF5aW5nOiB0cnVlLCBwb3NpdGlvbjogdW5kZWZpbmVkIH0pO1xuICAgIH0sXG4gICAgcGF1c2U6ICgpID0+IHtcbiAgICAgIGdldEFkbWluTWVzc2FnZUJ1cygpLmVtaXRTZXRWaWRlbyhlbnRpdHksIHsgcGxheWluZzogZmFsc2UsIHBvc2l0aW9uOiB1bmRlZmluZWQgfSk7XG4gICAgfSxcbiAgICByZXN0YXJ0OiAoKSA9PiB7XG4gICAgICBnZXRBZG1pbk1lc3NhZ2VCdXMoKS5lbWl0U2V0VmlkZW8oZW50aXR5LCB7IHBsYXlpbmc6IHRydWUsIHBvc2l0aW9uOiAwIH0pO1xuICAgIH0sXG4gICAgc2V0Vm9sdW1lOiB2b2x1bWVPclN0ZXAgPT4ge1xuICAgICAgaWYgKHZpZGVvQ29udHJvbD8uZGlzYWJsZVZpZGVvUGxheWVyc1NvdW5kKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZpZGVvID0gVmlkZW9QbGF5ZXIuZ2V0T3JOdWxsKGVudGl0eSk7XG4gICAgICBpZiAoIXZpZGVvKSByZXR1cm47XG4gICAgICBsZXQgbmV3Vm9sdW1lOiBudW1iZXI7XG4gICAgICBpZiAodm9sdW1lT3JTdGVwID09PSAwKSB7XG4gICAgICAgIG5ld1ZvbHVtZSA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGVwcyA9IE1hdGgucm91bmQoKHZpZGVvLnZvbHVtZSA/PyBERUZBVUxUX1ZPTFVNRSkgKiAxMCk7XG4gICAgICAgIGNvbnN0IG5ld1N0ZXBzID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAsIHN0ZXBzICsgKHZvbHVtZU9yU3RlcCBhcyBudW1iZXIpICogMTApKTtcbiAgICAgICAgbmV3Vm9sdW1lID0gbmV3U3RlcHMgLyAxMDtcbiAgICAgIH1cbiAgICAgIGdldEFkbWluTWVzc2FnZUJ1cygpLmVtaXRTZXRWaWRlbyhlbnRpdHksIHsgdm9sdW1lOiBuZXdWb2x1bWUsIHBvc2l0aW9uOiB1bmRlZmluZWQgfSk7XG4gICAgfSxcbiAgICBzZXRTb3VyY2U6IHVybCA9PiB7XG4gICAgICBnZXRBZG1pbk1lc3NhZ2VCdXMoKS5lbWl0U2V0VmlkZW8oZW50aXR5LCB7IHNyYzogdXJsLCBwbGF5aW5nOiB0cnVlIH0pO1xuICAgIH0sXG4gICAgc2V0TG9vcChsb29wKSB7XG4gICAgICBnZXRBZG1pbk1lc3NhZ2VCdXMoKS5lbWl0U2V0VmlkZW8oZW50aXR5LCB7IGxvb3AsIHBvc2l0aW9uOiB1bmRlZmluZWQgfSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbGVjdGVkVmlkZW9QbGF5ZXIoXG4gIGVuZ2luZTogSUVuZ2luZSxcbik6IFtFbnRpdHksIERlZXBSZWFkb25seU9iamVjdDxQQlZpZGVvUGxheWVyPl0gfCBudWxsIHtcbiAgY29uc3QgeyBWaWRlb1BsYXllciB9ID0gZ2V0RXhwbG9yZXJDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IHZpZGVvUGxheWVycyA9IGdldFZpZGVvUGxheWVycyhlbmdpbmUpO1xuXG4gIGlmICh2aWRlb1BsYXllcnMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBzZWxlY3RlZFZpZGVvUGxheWVyID0gdmlkZW9QbGF5ZXJzW3N0YXRlLnZpZGVvQ29udHJvbC5zZWxlY3RlZFZpZGVvUGxheWVyID8/IDBdO1xuICBpZiAoIXNlbGVjdGVkVmlkZW9QbGF5ZXIpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IGVudGl0eSA9IHNlbGVjdGVkVmlkZW9QbGF5ZXIuZW50aXR5IGFzIEVudGl0eTtcbiAgY29uc3QgdmlkZW9QbGF5ZXIgPSBWaWRlb1BsYXllci5nZXRPck51bGwoZW50aXR5KTtcbiAgcmV0dXJuIHZpZGVvUGxheWVyID8gW2VudGl0eSwgdmlkZW9QbGF5ZXJdIDogbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGNsQ2FzdCh1cmw6IHN0cmluZykge1xuICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgoJ2xpdmVraXQtdmlkZW86Ly8nKSAmJiBzdGF0ZS52aWRlb0NvbnRyb2wuc2VsZWN0ZWRTdHJlYW0gPT09ICdkY2wtY2FzdCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xpdmVTdHJlYW0odXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHVybC5zdGFydHNXaXRoKExJVkVLSVRfU1RSRUFNX1NSQykgJiYgc3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkU3RyZWFtID09PSAnbGl2ZSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZpZGVvVXJsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiB1cmwuc3RhcnRzV2l0aChWSURFT19VUkxfVFlQRSk7XG59XG4iXX0=
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9WaWRlb0NvbnRyb2wvdXRpbHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sR0FBRyxDQUFDO0FBV25DLE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxNQUFlO0lBQ3pELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM1RSxPQUFPLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzFGLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixNQUFlO0lBRWYsTUFBTSx3QkFBd0IsR0FBRywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyRSxJQUNFLENBQUMsd0JBQXdCO1FBQ3pCLENBQUMsd0JBQXdCLENBQUMsWUFBWTtRQUN0Qyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUM7UUFFbEQsT0FBTyxFQUFFLENBQUM7SUFFWixPQUFPLEtBQUssQ0FBQyxJQUFJ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QyxFQUFFLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBZ0IsQ0FBQztRQUNoRCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLElBQUksS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsZUFBZSxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVc7SUFDbkMsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxLQUFLLFVBQVUsQ0FBQztBQUM3RixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxLQUFLLE1BQU0sQ0FBQztBQUM1RixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZWVwUmVhZG9ubHlPYmplY3QsIEVudGl0eSwgSUVuZ2luZSwgUEJWaWRlb1BsYXllciB9IGZyb20gJ0BkY2wvZWNzJztcbmltcG9ydCB0eXBlIHsgQWRtaW5Ub29scyB9IGZyb20gJy4uLy4uL2RlZmluaXRpb25zJztcbmltcG9ydCB7IGdldENvbXBvbmVudHMsIExJVkVLSVRfU1RSRUFNX1NSQywgVklERU9fVVJMX1RZUEUgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBnZXRFeHBsb3JlckNvbXBvbmVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IHN0YXRlIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgZ2V0QWRtaW5NZXNzYWdlQnVzIH0gZnJvbSAnLi4vYWRtaW4tbWVzc2FnZS1idXMnO1xuaW1wb3J0IHsgREVGQVVMVF9WT0xVTUUgfSBmcm9tICcuJztcblxuaW50ZXJmYWNlIFZpZGVvUGxheWVyQ29udHJvbHMge1xuICBwbGF5KCk6IHZvaWQ7XG4gIHBhdXNlKCk6IHZvaWQ7XG4gIHJlc3RhcnQoKTogdm9pZDtcbiAgc2V0Vm9sdW1lKHZvbHVtZTogbnVtYmVyKTogdm9pZDtcbiAgc2V0U291cmNlKHVybDogc3RyaW5nKTogdm9pZDtcbiAgc2V0TG9vcChsb29wOiBib29sZWFuKTogdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFkbWluVG9vbGtpdFZpZGVvQ29udHJvbChlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgeyBBZG1pblRvb2xzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IGFkbWluVG9vbGtpdEVudGl0aWVzID0gQXJyYXkuZnJvbShlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKEFkbWluVG9vbHMpKTtcbiAgcmV0dXJuIGFkbWluVG9vbGtpdEVudGl0aWVzLmxlbmd0aCA+IDAgPyBhZG1pblRvb2xraXRFbnRpdGllc1swXVsxXS52aWRlb0NvbnRyb2wgOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmlkZW9QbGF5ZXJzKFxuICBlbmdpbmU6IElFbmdpbmUsXG4pOiBOb25OdWxsYWJsZTxBZG1pblRvb2xzWyd2aWRlb0NvbnRyb2wnXVsndmlkZW9QbGF5ZXJzJ10+IHtcbiAgY29uc3QgYWRtaW5Ub29sa2l0VmlkZW9Db250cm9sID0gZ2V0QWRtaW5Ub29sa2l0VmlkZW9Db250cm9sKGVuZ2luZSk7XG5cbiAgaWYgKFxuICAgICFhZG1pblRvb2xraXRWaWRlb0NvbnRyb2wgfHxcbiAgICAhYWRtaW5Ub29sa2l0VmlkZW9Db250cm9sLnZpZGVvUGxheWVycyB8fFxuICAgIGFkbWluVG9vbGtpdFZpZGVvQ29udHJvbC52aWRlb1BsYXllcnMubGVuZ3RoID09PSAwXG4gIClcbiAgICByZXR1cm4gW107XG5cbiAgcmV0dXJuIEFycmF5LmZyb20oYWRtaW5Ub29sa2l0VmlkZW9Db250cm9sLnZpZGVvUGxheWVycyk7XG59XG5cbmZ1bmN0aW9uIGNoZWNrVmlkZW9QbGF5ZXJTb3VuZChlbnRpdHk6IEVudGl0eSwgZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IHZpZGVvQ29udHJvbCA9IGdldEFkbWluVG9vbGtpdFZpZGVvQ29udHJvbChlbmdpbmUpO1xuICBjb25zdCB7IFZpZGVvUGxheWVyIH0gPSBnZXRFeHBsb3JlckNvbXBvbmVudHMoZW5naW5lKTtcblxuICBpZiAodmlkZW9Db250cm9sPy5kaXNhYmxlVmlkZW9QbGF5ZXJzU291bmQpIHtcbiAgICBjb25zdCB2aWRlbyA9IFZpZGVvUGxheWVyLmdldChlbnRpdHkpO1xuICAgIGlmICh2aWRlby52b2x1bWUpIHtcbiAgICAgIFZpZGVvUGxheWVyLmdldE11dGFibGUoZW50aXR5KS52b2x1bWUgPSAwO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVmlkZW9QbGF5ZXJDb250cm9scyhlbnRpdHk6IEVudGl0eSwgZW5naW5lOiBJRW5naW5lKTogVmlkZW9QbGF5ZXJDb250cm9scyB7XG4gIGNvbnN0IHZpZGVvQ29udHJvbCA9IGdldEFkbWluVG9vbGtpdFZpZGVvQ29udHJvbChlbmdpbmUpO1xuICBjb25zdCB7IFZpZGVvUGxheWVyIH0gPSBnZXRFeHBsb3JlckNvbXBvbmVudHMoZW5naW5lKTtcblxuICBjaGVja1ZpZGVvUGxheWVyU291bmQoZW50aXR5LCBlbmdpbmUpO1xuXG4gIHJldHVybiB7XG4gICAgcGxheTogKCkgPT4ge1xuICAgICAgZ2V0QWRtaW5NZXNzYWdlQnVzKCkuZW1pdFNldFZpZGVvKGVudGl0eSwgeyBwbGF5aW5nOiB0cnVlLCBwb3NpdGlvbjogdW5kZWZpbmVkIH0pO1xuICAgIH0sXG4gICAgcGF1c2U6ICgpID0+IHtcbiAgICAgIGdldEFkbWluTWVzc2FnZUJ1cygpLmVtaXRTZXRWaWRlbyhlbnRpdHksIHsgcGxheWluZzogZmFsc2UsIHBvc2l0aW9uOiB1bmRlZmluZWQgfSk7XG4gICAgfSxcbiAgICByZXN0YXJ0OiAoKSA9PiB7XG4gICAgICBnZXRBZG1pbk1lc3NhZ2VCdXMoKS5lbWl0U2V0VmlkZW8oZW50aXR5LCB7IHBsYXlpbmc6IHRydWUsIHBvc2l0aW9uOiAwIH0pO1xuICAgIH0sXG4gICAgc2V0Vm9sdW1lOiB2b2x1bWVPclN0ZXAgPT4ge1xuICAgICAgaWYgKHZpZGVvQ29udHJvbD8uZGlzYWJsZVZpZGVvUGxheWVyc1NvdW5kKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZpZGVvID0gVmlkZW9QbGF5ZXIuZ2V0T3JOdWxsKGVudGl0eSk7XG4gICAgICBpZiAoIXZpZGVvKSByZXR1cm47XG4gICAgICBsZXQgbmV3Vm9sdW1lOiBudW1iZXI7XG4gICAgICBpZiAodm9sdW1lT3JTdGVwID09PSAwKSB7XG4gICAgICAgIG5ld1ZvbHVtZSA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGVwcyA9IE1hdGgucm91bmQoKHZpZGVvLnZvbHVtZSA/PyBERUZBVUxUX1ZPTFVNRSkgKiAxMCk7XG4gICAgICAgIGNvbnN0IG5ld1N0ZXBzID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAsIHN0ZXBzICsgKHZvbHVtZU9yU3RlcCBhcyBudW1iZXIpICogMTApKTtcbiAgICAgICAgbmV3Vm9sdW1lID0gbmV3U3RlcHMgLyAxMDtcbiAgICAgIH1cbiAgICAgIGdldEFkbWluTWVzc2FnZUJ1cygpLmVtaXRTZXRWaWRlbyhlbnRpdHksIHsgdm9sdW1lOiBuZXdWb2x1bWUsIHBvc2l0aW9uOiB1bmRlZmluZWQgfSk7XG4gICAgfSxcbiAgICBzZXRTb3VyY2U6IHVybCA9PiB7XG4gICAgICBnZXRBZG1pbk1lc3NhZ2VCdXMoKS5lbWl0U2V0VmlkZW8oZW50aXR5LCB7IHNyYzogdXJsLCBwbGF5aW5nOiB0cnVlIH0pO1xuICAgIH0sXG4gICAgc2V0TG9vcChsb29wKSB7XG4gICAgICBnZXRBZG1pbk1lc3NhZ2VCdXMoKS5lbWl0U2V0VmlkZW8oZW50aXR5LCB7IGxvb3AsIHBvc2l0aW9uOiB1bmRlZmluZWQgfSk7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbGVjdGVkVmlkZW9QbGF5ZXIoXG4gIGVuZ2luZTogSUVuZ2luZSxcbik6IFtFbnRpdHksIERlZXBSZWFkb25seU9iamVjdDxQQlZpZGVvUGxheWVyPl0gfCBudWxsIHtcbiAgY29uc3QgeyBWaWRlb1BsYXllciB9ID0gZ2V0RXhwbG9yZXJDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IHZpZGVvUGxheWVycyA9IGdldFZpZGVvUGxheWVycyhlbmdpbmUpO1xuXG4gIGlmICh2aWRlb1BsYXllcnMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBzZWxlY3RlZFZpZGVvUGxheWVyID0gdmlkZW9QbGF5ZXJzW3N0YXRlLnZpZGVvQ29udHJvbC5zZWxlY3RlZFZpZGVvUGxheWVyID8/IDBdO1xuICBpZiAoIXNlbGVjdGVkVmlkZW9QbGF5ZXIpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IGVudGl0eSA9IHNlbGVjdGVkVmlkZW9QbGF5ZXIuZW50aXR5IGFzIEVudGl0eTtcbiAgY29uc3QgdmlkZW9QbGF5ZXIgPSBWaWRlb1BsYXllci5nZXRPck51bGwoZW50aXR5KTtcbiAgcmV0dXJuIHZpZGVvUGxheWVyID8gW2VudGl0eSwgdmlkZW9QbGF5ZXJdIDogbnVsbDtcbn1cblxuZXhwb3J0IGNvbnN0IENBU1RfU1JDX1BSRUZJWCA9ICdsaXZla2l0LXZpZGVvOi8vJztcblxuLy8gSW5kZXggb2YgdGhlIGZpcnN0IHZpZGVvIHBsYXllciBjdXJyZW50bHkgc2hvd2luZyB0aGUgRENMIENhc3Qgc3RyZWFtLCBvclxuLy8gdW5kZWZpbmVkIGlmIG5vbmUuIFVzZWQgdG8gcG9pbnQgdGhlIHBhbmVsIGF0IHRoZSBzY3JlZW4gdGhhdCBpcyBhY3R1YWxseVxuLy8gY2FzdGluZyB3aGVuIGF1dG8tb3BlbmluZyBvbiBhIHByZXNlbnRhdGlvbiBzdGFydC5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQWN0aXZlQ2FzdFNjcmVlbkluZGV4KGVuZ2luZTogSUVuZ2luZSk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHsgVmlkZW9QbGF5ZXIgfSA9IGdldEV4cGxvcmVyQ29tcG9uZW50cyhlbmdpbmUpO1xuICBjb25zdCB2aWRlb1BsYXllcnMgPSBnZXRWaWRlb1BsYXllcnMoZW5naW5lKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2aWRlb1BsYXllcnMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBlbnRpdHkgPSB2aWRlb1BsYXllcnNbaV0uZW50aXR5IGFzIEVudGl0eTtcbiAgICBjb25zdCB2aWRlbyA9IFZpZGVvUGxheWVyLmdldE9yTnVsbChlbnRpdHkpO1xuICAgIGlmICh2aWRlbz8uc3JjPy5zdGFydHNXaXRoKENBU1RfU1JDX1BSRUZJWCkpIHJldHVybiBpO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RjbENhc3QodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHVybC5zdGFydHNXaXRoKENBU1RfU1JDX1BSRUZJWCkgJiYgc3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkU3RyZWFtID09PSAnZGNsLWNhc3QnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMaXZlU3RyZWFtKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiB1cmwuc3RhcnRzV2l0aChMSVZFS0lUX1NUUkVBTV9TUkMpICYmIHN0YXRlLnZpZGVvQ29udHJvbC5zZWxlY3RlZFN0cmVhbSA9PT0gJ2xpdmUnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWaWRlb1VybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgoVklERU9fVVJMX1RZUEUpO1xufVxuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Entity } from '@dcl/ecs';
|
|
2
|
+
import { TabType, type PresentationState } from './types';
|
|
3
|
+
import type { DclCastResponse, FlattenedTrack, Participant } from './VideoControl/api';
|
|
4
|
+
import type { SceneAdmin } from './ModerationControl';
|
|
5
|
+
export declare function setAdminToolkitUiEntity(entity: Entity): void;
|
|
6
|
+
export declare function openPanel(): void;
|
|
7
|
+
export declare function togglePanel(): void;
|
|
8
|
+
export declare function setActiveTab(tab: TabType): void;
|
|
9
|
+
export declare function selectVideoSubTab(tab: 'video-url' | 'live' | 'dcl-cast'): void;
|
|
10
|
+
export declare function selectVideoPlayer(index: number): void;
|
|
11
|
+
export declare function selectSmartItem(idx: number, entity: Entity, defaultAction: string): void;
|
|
12
|
+
export declare function setSmartItemAction(entity: Entity, actionName: string): void;
|
|
13
|
+
export declare function setSmartItemVisibility(entity: Entity, visible: boolean): void;
|
|
14
|
+
export declare function minimizeCast(): void;
|
|
15
|
+
export declare function expandCast(): void;
|
|
16
|
+
export declare function showPresentation(castScreenIndex?: number): void;
|
|
17
|
+
export declare function dismissPresentation(): void;
|
|
18
|
+
export declare function setPresentationState(presentation: PresentationState): void;
|
|
19
|
+
export declare function clearPresentationState(): void;
|
|
20
|
+
export declare function setStream(stream: 'live' | 'dcl-cast' | undefined): void;
|
|
21
|
+
export declare function setDclCastInfo(info: DclCastResponse): void;
|
|
22
|
+
export declare function setParticipants(participants: Participant[]): void;
|
|
23
|
+
export declare function openShowcase(handlers: {
|
|
24
|
+
onSelectTrack: (track: FlattenedTrack) => void;
|
|
25
|
+
onSetDefault: () => void;
|
|
26
|
+
onClose: () => void;
|
|
27
|
+
}): void;
|
|
28
|
+
export declare function closeShowcase(): void;
|
|
29
|
+
export declare function setShowcaseActiveTrack(sid: string | undefined): void;
|
|
30
|
+
export declare function openSharePresentation(onClose: () => void): void;
|
|
31
|
+
export declare function closeSharePresentation(): void;
|
|
32
|
+
export declare function setAnnouncementText(text: string): void;
|
|
33
|
+
export declare function clearAnnouncements(): void;
|
|
34
|
+
export declare function showAnnouncementBanner(kind: 'sent' | 'cleared'): void;
|
|
35
|
+
export declare function clearAnnouncementBanner(): void;
|
|
36
|
+
export declare function openAdminList(): void;
|
|
37
|
+
export declare function closeAdminList(): void;
|
|
38
|
+
export declare function openBanList(): void;
|
|
39
|
+
export declare function closeBanList(): void;
|
|
40
|
+
export declare function confirmRemoveAdmin(admin: SceneAdmin): void;
|
|
41
|
+
export declare function cancelRemoveAdmin(): void;
|
|
42
|
+
export declare function setUnbanMessage(message: string | undefined): void;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { state } from './store';
|
|
2
|
+
import { TabType } from './types';
|
|
3
|
+
export function setAdminToolkitUiEntity(entity) {
|
|
4
|
+
state.adminToolkitUiEntity = entity;
|
|
5
|
+
}
|
|
6
|
+
export function openPanel() {
|
|
7
|
+
state.panelOpen = true;
|
|
8
|
+
}
|
|
9
|
+
export function togglePanel() {
|
|
10
|
+
state.panelOpen = !state.panelOpen;
|
|
11
|
+
}
|
|
12
|
+
export function setActiveTab(tab) {
|
|
13
|
+
state.activeTab = state.activeTab === tab ? TabType.NONE : tab;
|
|
14
|
+
}
|
|
15
|
+
export function selectVideoSubTab(tab) {
|
|
16
|
+
state.videoControl.selectedTab = tab;
|
|
17
|
+
}
|
|
18
|
+
export function selectVideoPlayer(index) {
|
|
19
|
+
state.videoControl.selectedVideoPlayer = index;
|
|
20
|
+
}
|
|
21
|
+
export function selectSmartItem(idx, entity, defaultAction) {
|
|
22
|
+
state.smartItemsControl.selectedSmartItem = idx;
|
|
23
|
+
if (!state.smartItemsControl.smartItems.has(entity)) {
|
|
24
|
+
const next = new Map(state.smartItemsControl.smartItems);
|
|
25
|
+
next.set(entity, { visible: true, selectedAction: defaultAction });
|
|
26
|
+
state.smartItemsControl = { ...state.smartItemsControl, smartItems: next };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export function setSmartItemAction(entity, actionName) {
|
|
30
|
+
const current = state.smartItemsControl.smartItems.get(entity);
|
|
31
|
+
if (!current)
|
|
32
|
+
return;
|
|
33
|
+
const next = new Map(state.smartItemsControl.smartItems);
|
|
34
|
+
next.set(entity, { ...current, selectedAction: actionName });
|
|
35
|
+
state.smartItemsControl = { ...state.smartItemsControl, smartItems: next };
|
|
36
|
+
}
|
|
37
|
+
export function setSmartItemVisibility(entity, visible) {
|
|
38
|
+
const current = state.smartItemsControl.smartItems.get(entity);
|
|
39
|
+
if (!current)
|
|
40
|
+
return;
|
|
41
|
+
const next = new Map(state.smartItemsControl.smartItems);
|
|
42
|
+
next.set(entity, { ...current, visible });
|
|
43
|
+
state.smartItemsControl = { ...state.smartItemsControl, smartItems: next };
|
|
44
|
+
}
|
|
45
|
+
export function minimizeCast() {
|
|
46
|
+
state.videoControl.isMinimized = true;
|
|
47
|
+
}
|
|
48
|
+
export function expandCast() {
|
|
49
|
+
state.videoControl.isMinimized = false;
|
|
50
|
+
}
|
|
51
|
+
export function showPresentation(castScreenIndex) {
|
|
52
|
+
openPanel();
|
|
53
|
+
state.activeTab = TabType.VIDEO_CONTROL;
|
|
54
|
+
selectVideoSubTab('dcl-cast');
|
|
55
|
+
if (castScreenIndex !== undefined) {
|
|
56
|
+
selectVideoPlayer(castScreenIndex);
|
|
57
|
+
}
|
|
58
|
+
setStream('dcl-cast');
|
|
59
|
+
minimizeCast();
|
|
60
|
+
}
|
|
61
|
+
export function dismissPresentation() {
|
|
62
|
+
clearPresentationState();
|
|
63
|
+
expandCast();
|
|
64
|
+
}
|
|
65
|
+
export function setPresentationState(presentation) {
|
|
66
|
+
state.videoControl.presentationState = presentation;
|
|
67
|
+
}
|
|
68
|
+
export function clearPresentationState() {
|
|
69
|
+
state.videoControl.presentationState = undefined;
|
|
70
|
+
}
|
|
71
|
+
export function setStream(stream) {
|
|
72
|
+
state.videoControl.selectedStream = stream;
|
|
73
|
+
}
|
|
74
|
+
export function setDclCastInfo(info) {
|
|
75
|
+
state.videoControl.dclCast = info;
|
|
76
|
+
}
|
|
77
|
+
export function setParticipants(participants) {
|
|
78
|
+
state.videoControl.participants = participants;
|
|
79
|
+
}
|
|
80
|
+
export function openShowcase(handlers) {
|
|
81
|
+
const { showcase } = state.videoControl;
|
|
82
|
+
showcase.onSelectTrack = handlers.onSelectTrack;
|
|
83
|
+
showcase.onSetDefault = handlers.onSetDefault;
|
|
84
|
+
showcase.onClose = handlers.onClose;
|
|
85
|
+
showcase.show = true;
|
|
86
|
+
}
|
|
87
|
+
export function closeShowcase() {
|
|
88
|
+
const { showcase } = state.videoControl;
|
|
89
|
+
showcase.show = false;
|
|
90
|
+
showcase.onSelectTrack = undefined;
|
|
91
|
+
showcase.onSetDefault = undefined;
|
|
92
|
+
showcase.onClose = undefined;
|
|
93
|
+
}
|
|
94
|
+
export function setShowcaseActiveTrack(sid) {
|
|
95
|
+
state.videoControl.showcase.activeTrackSid = sid;
|
|
96
|
+
}
|
|
97
|
+
export function openSharePresentation(onClose) {
|
|
98
|
+
state.videoControl.sharePresentation.onClose = onClose;
|
|
99
|
+
state.videoControl.sharePresentation.show = true;
|
|
100
|
+
}
|
|
101
|
+
export function closeSharePresentation() {
|
|
102
|
+
state.videoControl.sharePresentation.show = false;
|
|
103
|
+
state.videoControl.sharePresentation.onClose = undefined;
|
|
104
|
+
}
|
|
105
|
+
export function setAnnouncementText(text) {
|
|
106
|
+
state.textAnnouncementControl.text = text;
|
|
107
|
+
}
|
|
108
|
+
export function clearAnnouncements() {
|
|
109
|
+
state.textAnnouncementControl.announcements = [];
|
|
110
|
+
}
|
|
111
|
+
export function showAnnouncementBanner(kind) {
|
|
112
|
+
state.textAnnouncementControl.banner = kind;
|
|
113
|
+
}
|
|
114
|
+
export function clearAnnouncementBanner() {
|
|
115
|
+
state.textAnnouncementControl.banner = undefined;
|
|
116
|
+
}
|
|
117
|
+
export function openAdminList() {
|
|
118
|
+
state.moderationControl.showModalAdminList = true;
|
|
119
|
+
}
|
|
120
|
+
export function closeAdminList() {
|
|
121
|
+
state.moderationControl.showModalAdminList = false;
|
|
122
|
+
}
|
|
123
|
+
export function openBanList() {
|
|
124
|
+
state.moderationControl.showModalBanList = true;
|
|
125
|
+
}
|
|
126
|
+
export function closeBanList() {
|
|
127
|
+
state.moderationControl.showModalBanList = false;
|
|
128
|
+
}
|
|
129
|
+
export function confirmRemoveAdmin(admin) {
|
|
130
|
+
state.moderationControl.adminToRemove = admin;
|
|
131
|
+
}
|
|
132
|
+
export function cancelRemoveAdmin() {
|
|
133
|
+
state.moderationControl.adminToRemove = undefined;
|
|
134
|
+
}
|
|
135
|
+
export function setUnbanMessage(message) {
|
|
136
|
+
state.moderationControl.unbanMessage = message;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZG1pbi10b29sa2l0LXVpL2FjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsT0FBTyxFQUEwQixNQUFNLFNBQVMsQ0FBQztBQWExRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBYztJQUNwRCxLQUFLLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0FBQ3RDLENBQUM7QUFHRCxNQUFNLFVBQVUsU0FBUztJQUN2QixLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVc7SUFDekIsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7QUFDckMsQ0FBQztBQUdELE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBWTtJQUN2QyxLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDakUsQ0FBQztBQUdELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxHQUFzQztJQUN0RSxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFhO0lBQzdDLEtBQUssQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0FBQ2pELENBQUM7QUFHRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEdBQVcsRUFBRSxNQUFjLEVBQUUsYUFBcUI7SUFDaEYsS0FBSyxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztJQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixD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Z0IsR0FBRyxLQUFLLENBQUM7QUFDbkQsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFpQjtJQUNsRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztBQUNoRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixLQUFLLENBQUMsaUJBQWlCLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxPQUEyQjtJQUN6RCxLQUFLLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHkgfSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgeyBzdGF0ZSB9IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHsgVGFiVHlwZSwgdHlwZSBQcmVzZW50YXRpb25TdGF0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBEY2xDYXN0UmVzcG9uc2UsIEZsYXR0ZW5lZFRyYWNrLCBQYXJ0aWNpcGFudCB9IGZyb20gJy4vVmlkZW9Db250cm9sL2FwaSc7XG5pbXBvcnQgdHlwZSB7IFNjZW5lQWRtaW4gfSBmcm9tICcuL01vZGVyYXRpb25Db250cm9sJztcblxuLy8gTmFtZWQgdmlldy1zdGF0ZSB0cmFuc2l0aW9ucyDigJQgdGhlIG9ubHkgd3JpdGVycyBvZiBzaGFyZWQgcGFuZWwvdmlldyBzdGF0ZS5cbi8vXG4vLyBLZWVwIHRoaXMgYSBsZWFmOiBpbXBvcnQgb25seSAuL3N0b3JlIGFuZCAuL3R5cGVzLCBzbyBhbnkgc2VydmljZSAoZS5nLiB0aGVcbi8vIHByZXNlbnRhdGlvbiBkZXRlY3RvcikgY2FuIGRyaXZlIHRoZSBVSSB3aXRob3V0IHRvdWNoaW5nIHRoZSBjb21wb25lbnQgZ3JhcGguXG4vLyBSZW5kZXIgY29kZSByZWFkcyBgc3RhdGVgIGFuZCBjYWxscyB0aGVzZTsgaXQgbXVzdCBub3QgYXNzaWduIGBzdGF0ZS4qYCBkaXJlY3RseS5cblxuLy8gLS0tIEJvb3RzdHJhcCAtLS1cbi8vIFRoZSBlbnRpdHkgdGhhdCBob2xkcyB0aGUgQWRtaW5Ub29scy9WaWRlb0NvbnRyb2xTdGF0ZSBjb21wb25lbnRzLCByZXNvbHZlZFxuLy8gb25jZSBkdXJpbmcgVUkgc2V0dXAuXG5leHBvcnQgZnVuY3Rpb24gc2V0QWRtaW5Ub29sa2l0VWlFbnRpdHkoZW50aXR5OiBFbnRpdHkpOiB2b2lkIHtcbiAgc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHkgPSBlbnRpdHk7XG59XG5cbi8vIC0tLSBQYW5lbCAtLS1cbmV4cG9ydCBmdW5jdGlvbiBvcGVuUGFuZWwoKTogdm9pZCB7XG4gIHN0YXRlLnBhbmVsT3BlbiA9IHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b2dnbGVQYW5lbCgpOiB2b2lkIHtcbiAgc3RhdGUucGFuZWxPcGVuID0gIXN0YXRlLnBhbmVsT3Blbjtcbn1cblxuLy8gLS0tIFRhYnMgLS0tIHNlbGVjdGluZyB0aGUgYWxyZWFkeS1hY3RpdmUgdGFiIGNsb3NlcyBpdCAocHJpb3IgdG9nZ2xlIGJlaGF2aW9yKS5cbmV4cG9ydCBmdW5jdGlvbiBzZXRBY3RpdmVUYWIodGFiOiBUYWJUeXBlKTogdm9pZCB7XG4gIHN0YXRlLmFjdGl2ZVRhYiA9IHN0YXRlLmFjdGl2ZVRhYiA9PT0gdGFiID8gVGFiVHlwZS5OT05FIDogdGFiO1xufVxuXG4vLyAtLS0gVmlkZW8gQ29udHJvbCBzdWItdmlldyAtLS1cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RWaWRlb1N1YlRhYih0YWI6ICd2aWRlby11cmwnIHwgJ2xpdmUnIHwgJ2RjbC1jYXN0Jyk6IHZvaWQge1xuICBzdGF0ZS52aWRlb0NvbnRyb2wuc2VsZWN0ZWRUYWIgPSB0YWI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RWaWRlb1BsYXllcihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gIHN0YXRlLnZpZGVvQ29udHJvbC5zZWxlY3RlZFZpZGVvUGxheWVyID0gaW5kZXg7XG59XG5cbi8vIC0tLSBTbWFydCBJdGVtcyAtLS1cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RTbWFydEl0ZW0oaWR4OiBudW1iZXIsIGVudGl0eTogRW50aXR5LCBkZWZhdWx0QWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgc3RhdGUuc21hcnRJdGVtc0NvbnRyb2wuc2VsZWN0ZWRTbWFydEl0ZW0gPSBpZHg7XG4gIGlmICghc3RhdGUuc21hcnRJdGVtc0NvbnRyb2wuc21hcnRJdGVtcy5oYXMoZW50aXR5KSkge1xuICAgIGNvbnN0IG5leHQgPSBuZXcgTWFwKHN0YXRlLnNtYXJ0SXRlbXNDb250cm9sLnNtYXJ0SXRlbXMpO1xuICAgIG5leHQuc2V0KGVudGl0eSwgeyB2aXNpYmxlOiB0cnVlLCBzZWxlY3RlZEFjdGlvbjogZGVmYXVsdEFjdGlvbiB9KTtcbiAgICBzdGF0ZS5zbWFydEl0ZW1zQ29udHJvbCA9IHsgLi4uc3RhdGUuc21hcnRJdGVtc0NvbnRyb2wsIHNtYXJ0SXRlbXM6IG5leHQgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0U21hcnRJdGVtQWN0aW9uKGVudGl0eTogRW50aXR5LCBhY3Rpb25OYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgY3VycmVudCA9IHN0YXRlLnNtYXJ0SXRlbXNDb250cm9sLnNtYXJ0SXRlbXMuZ2V0KGVudGl0eSk7XG4gIGlmICghY3VycmVudCkgcmV0dXJuO1xuICBjb25zdCBuZXh0ID0gbmV3IE1hcChzdGF0ZS5zbWFydEl0ZW1zQ29udHJvbC5zbWFydEl0ZW1zKTtcbiAgbmV4dC5zZXQoZW50aXR5LCB7IC4uLmN1cnJlbnQsIHNlbGVjdGVkQWN0aW9uOiBhY3Rpb25OYW1lIH0pO1xuICBzdGF0ZS5zbWFydEl0ZW1zQ29udHJvbCA9IHsgLi4uc3RhdGUuc21hcnRJdGVtc0NvbnRyb2wsIHNtYXJ0SXRlbXM6IG5leHQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNtYXJ0SXRlbVZpc2liaWxpdHkoZW50aXR5OiBFbnRpdHksIHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgY29uc3QgY3VycmVudCA9IHN0YXRlLnNtYXJ0SXRlbXNDb250cm9sLnNtYXJ0SXRlbXMuZ2V0KGVudGl0eSk7XG4gIGlmICghY3VycmVudCkgcmV0dXJuO1xuICBjb25zdCBuZXh0ID0gbmV3IE1hcChzdGF0ZS5zbWFydEl0ZW1zQ29udHJvbC5zbWFydEl0ZW1zKTtcbiAgbmV4dC5zZXQoZW50aXR5LCB7IC4uLmN1cnJlbnQsIHZpc2libGUgfSk7XG4gIHN0YXRlLnNtYXJ0SXRlbXNDb250cm9sID0geyAuLi5zdGF0ZS5zbWFydEl0ZW1zQ29udHJvbCwgc21hcnRJdGVtczogbmV4dCB9O1xufVxuXG4vLyAtLS0gRENMIENhc3QgY29tcGFjdC9mdWxsIC0tLVxuZXhwb3J0IGZ1bmN0aW9uIG1pbmltaXplQ2FzdCgpOiB2b2lkIHtcbiAgc3RhdGUudmlkZW9Db250cm9sLmlzTWluaW1pemVkID0gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGFuZENhc3QoKTogdm9pZCB7XG4gIHN0YXRlLnZpZGVvQ29udHJvbC5pc01pbmltaXplZCA9IGZhbHNlO1xufVxuXG4vLyAtLS0gUHJlc2VudGF0aW9uIGxpZmVjeWNsZSAtLS1cbi8vIENhbGxlZCBvbiB0aGUgZGV0ZWN0b3IncyBwcmVzZW50YXRpb24tc3RhcnRlZCBlZGdlLiBEZXRlcm1pbmlzdGljIHJlZ2FyZGxlc3Mgb2Zcbi8vIHRoZSBjdXJyZW50IHBhbmVsL3RhYi9jYXN0aW5nLXNjcmVlbiBiZWNhdXNlIHRoZSBzdWItdmlldyBpcyBzaGFyZWQgc3RhdGUsIG5vdCBhXG4vLyBtb3VudC1kZXJpdmVkIGxvY2FsLiBQYXNzIHRoZSBjYXN0aW5nIHNjcmVlbiBpbmRleCAoZmluZEFjdGl2ZUNhc3RTY3JlZW5JbmRleCkgaWZcbi8vIG9uZSBpcyBsaXZlIHNvIHRoZSBwYW5lbCBwb2ludHMgYXQgaXQ7IG5ldmVyIGF1dG8tYWN0aXZhdGVzIGEgc2NyZWVuLlxuZXhwb3J0IGZ1bmN0aW9uIHNob3dQcmVzZW50YXRpb24oY2FzdFNjcmVlbkluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gIG9wZW5QYW5lbCgpO1xuICAvLyBGb3JjZSBWSURFT19DT05UUk9MIG9wZW4g4oCUIG5vdCBzZXRBY3RpdmVUYWIsIHdoaWNoIHdvdWxkIHRvZ2dsZSBpdCBjbG9zZWQgaWZcbiAgLy8gdGhlIGFkbWluIGlzIGFscmVhZHkgb24gaXQuXG4gIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuVklERU9fQ09OVFJPTDtcbiAgc2VsZWN0VmlkZW9TdWJUYWIoJ2RjbC1jYXN0Jyk7XG4gIGlmIChjYXN0U2NyZWVuSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgIHNlbGVjdFZpZGVvUGxheWVyKGNhc3RTY3JlZW5JbmRleCk7XG4gIH1cbiAgc2V0U3RyZWFtKCdkY2wtY2FzdCcpO1xuICBtaW5pbWl6ZUNhc3QoKTtcbn1cblxuLy8gQ2FsbGVkIG9uIHByZXNlbnRhdGlvbiBlbmQgKGJvdCAnc3RvcHBlZCcgb3IgdHJhY2sgZ29uZSkuIFJldHVybnMgdG8gdGhlIGZ1bGxcbi8vIERDTCBDYXN0IHBhbmVsOiBjbGVhcnMgc2xpZGUgc3RhdGUgYW5kIHVuLW1pbmltaXplczsgbGVhdmVzIHBhbmVsL3RhYiBhcy1pcy5cbmV4cG9ydCBmdW5jdGlvbiBkaXNtaXNzUHJlc2VudGF0aW9uKCk6IHZvaWQge1xuICBjbGVhclByZXNlbnRhdGlvblN0YXRlKCk7XG4gIGV4cGFuZENhc3QoKTtcbn1cblxuLy8gRGV0ZWN0b3ItZHJpdmVuIHNsaWRlL3ZpZGVvIHN0YXRlIChhcnJpdmVzIG92ZXIgdGhlICdwcmVzZW50YXRpb24nIGNvbW1zIHRvcGljKS5cbmV4cG9ydCBmdW5jdGlvbiBzZXRQcmVzZW50YXRpb25TdGF0ZShwcmVzZW50YXRpb246IFByZXNlbnRhdGlvblN0YXRlKTogdm9pZCB7XG4gIHN0YXRlLnZpZGVvQ29udHJvbC5wcmVzZW50YXRpb25TdGF0ZSA9IHByZXNlbnRhdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyUHJlc2VudGF0aW9uU3RhdGUoKTogdm9pZCB7XG4gIHN0YXRlLnZpZGVvQ29udHJvbC5wcmVzZW50YXRpb25TdGF0ZSA9IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFN0cmVhbShzdHJlYW06ICdsaXZlJyB8ICdkY2wtY2FzdCcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgc3RhdGUudmlkZW9Db250cm9sLnNlbGVjdGVkU3RyZWFtID0gc3RyZWFtO1xufVxuXG4vLyBDYXN0IHJvb20gaW5mbyAoc3RyZWFtaW5nIGtleSwgcm9vbSBpZCkgZmV0Y2hlZCBmcm9tIGdldERjbENhc3RJbmZvLlxuZXhwb3J0IGZ1bmN0aW9uIHNldERjbENhc3RJbmZvKGluZm86IERjbENhc3RSZXNwb25zZSk6IHZvaWQge1xuICBzdGF0ZS52aWRlb0NvbnRyb2wuZGNsQ2FzdCA9IGluZm87XG59XG5cbi8vIC0tLSBTcGVha2VyIFNob3djYXNlIC8gU2hhcmUgUHJlc2VudGF0aW9uIG1vZGFscyAtLS1cbmV4cG9ydCBmdW5jdGlvbiBzZXRQYXJ0aWNpcGFudHMocGFydGljaXBhbnRzOiBQYXJ0aWNpcGFudFtdKTogdm9pZCB7XG4gIHN0YXRlLnZpZGVvQ29udHJvbC5wYXJ0aWNpcGFudHMgPSBwYXJ0aWNpcGFudHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcGVuU2hvd2Nhc2UoaGFuZGxlcnM6IHtcbiAgb25TZWxlY3RUcmFjazogKHRyYWNrOiBGbGF0dGVuZWRUcmFjaykgPT4gdm9pZDtcbiAgb25TZXREZWZhdWx0OiAoKSA9PiB2b2lkO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xufSk6IHZvaWQge1xuICBjb25zdCB7IHNob3djYXNlIH0gPSBzdGF0ZS52aWRlb0NvbnRyb2w7XG4gIHNob3djYXNlLm9uU2VsZWN0VHJhY2sgPSBoYW5kbGVycy5vblNlbGVjdFRyYWNrO1xuICBzaG93Y2FzZS5vblNldERlZmF1bHQgPSBoYW5kbGVycy5vblNldERlZmF1bHQ7XG4gIHNob3djYXNlLm9uQ2xvc2UgPSBoYW5kbGVycy5vbkNsb3NlO1xuICBzaG93Y2FzZS5zaG93ID0gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsb3NlU2hvd2Nhc2UoKTogdm9pZCB7XG4gIGNvbnN0IHsgc2hvd2Nhc2UgfSA9IHN0YXRlLnZpZGVvQ29udHJvbDtcbiAgc2hvd2Nhc2Uuc2hvdyA9IGZhbHNlO1xuICAvLyBEcm9wIHRoZSBzdG9yZWQgaGFuZGxlcnMgc28gdGhlaXIgY2FwdHVyZWQgcmVuZGVyIGNsb3N1cmVzIChlbnRpdHkvZW5naW5lL1xuICAvLyBjb250cm9scykgYXJlbid0IHJldGFpbmVkIHdoaWxlIHRoZSBtb2RhbCBpcyBoaWRkZW4uXG4gIHNob3djYXNlLm9uU2VsZWN0VHJhY2sgPSB1bmRlZmluZWQ7XG4gIHNob3djYXNlLm9uU2V0RGVmYXVsdCA9IHVuZGVmaW5lZDtcbiAgc2hvd2Nhc2Uub25DbG9zZSA9IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNob3djYXNlQWN0aXZlVHJhY2soc2lkOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgc3RhdGUudmlkZW9Db250cm9sLnNob3djYXNlLmFjdGl2ZVRyYWNrU2lkID0gc2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3BlblNoYXJlUHJlc2VudGF0aW9uKG9uQ2xvc2U6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgc3RhdGUudmlkZW9Db250cm9sLnNoYXJlUHJlc2VudGF0aW9uLm9uQ2xvc2UgPSBvbkNsb3NlO1xuICBzdGF0ZS52aWRlb0NvbnRyb2wuc2hhcmVQcmVzZW50YXRpb24uc2hvdyA9IHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9zZVNoYXJlUHJlc2VudGF0aW9uKCk6IHZvaWQge1xuICBzdGF0ZS52aWRlb0NvbnRyb2wuc2hhcmVQcmVzZW50YXRpb24uc2hvdyA9IGZhbHNlO1xuICBzdGF0ZS52aWRlb0NvbnRyb2wuc2hhcmVQcmVzZW50YXRpb24ub25DbG9zZSA9IHVuZGVmaW5lZDtcbn1cblxuLy8gLS0tIFRleHQgQW5ub3VuY2VtZW50cyAtLS1cbmV4cG9ydCBmdW5jdGlvbiBzZXRBbm5vdW5jZW1lbnRUZXh0KHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICBzdGF0ZS50ZXh0QW5ub3VuY2VtZW50Q29udHJvbC50ZXh0ID0gdGV4dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQW5ub3VuY2VtZW50cygpOiB2b2lkIHtcbiAgc3RhdGUudGV4dEFubm91bmNlbWVudENvbnRyb2wuYW5ub3VuY2VtZW50cyA9IFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd0Fubm91bmNlbWVudEJhbm5lcihraW5kOiAnc2VudCcgfCAnY2xlYXJlZCcpOiB2b2lkIHtcbiAgc3RhdGUudGV4dEFubm91bmNlbWVudENvbnRyb2wuYmFubmVyID0ga2luZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQW5ub3VuY2VtZW50QmFubmVyKCk6IHZvaWQge1xuICBzdGF0ZS50ZXh0QW5ub3VuY2VtZW50Q29udHJvbC5iYW5uZXIgPSB1bmRlZmluZWQ7XG59XG5cbi8vIC0tLSBNb2RlcmF0aW9uIG1vZGFscyAtLS1cbmV4cG9ydCBmdW5jdGlvbiBvcGVuQWRtaW5MaXN0KCk6IHZvaWQge1xuICBzdGF0ZS5tb2RlcmF0aW9uQ29udHJvbC5zaG93TW9kYWxBZG1pbkxpc3QgPSB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VBZG1pbkxpc3QoKTogdm9pZCB7XG4gIHN0YXRlLm1vZGVyYXRpb25Db250cm9sLnNob3dNb2RhbEFkbWluTGlzdCA9IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3BlbkJhbkxpc3QoKTogdm9pZCB7XG4gIHN0YXRlLm1vZGVyYXRpb25Db250cm9sLnNob3dNb2RhbEJhbkxpc3QgPSB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VCYW5MaXN0KCk6IHZvaWQge1xuICBzdGF0ZS5tb2RlcmF0aW9uQ29udHJvbC5zaG93TW9kYWxCYW5MaXN0ID0gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maXJtUmVtb3ZlQWRtaW4oYWRtaW46IFNjZW5lQWRtaW4pOiB2b2lkIHtcbiAgc3RhdGUubW9kZXJhdGlvbkNvbnRyb2wuYWRtaW5Ub1JlbW92ZSA9IGFkbWluO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FuY2VsUmVtb3ZlQWRtaW4oKTogdm9pZCB7XG4gIHN0YXRlLm1vZGVyYXRpb25Db250cm9sLmFkbWluVG9SZW1vdmUgPSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRVbmJhbk1lc3NhZ2UobWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gIHN0YXRlLm1vZGVyYXRpb25Db250cm9sLnVuYmFuTWVzc2FnZSA9IG1lc3NhZ2U7XG59XG4iXX0=
|
|
@@ -4,6 +4,7 @@ import { getExplorerComponents } from '../components';
|
|
|
4
4
|
import { getComponents } from '../definitions';
|
|
5
5
|
import { isPreview } from './fetch-utils';
|
|
6
6
|
import { getVideoPlayers } from './VideoControl/utils';
|
|
7
|
+
import { clearInterval, setInterval } from './utils';
|
|
7
8
|
const MSG = {
|
|
8
9
|
SET_VIDEO: 'admin:set-video',
|
|
9
10
|
SET_ANNOUNCEMENT: 'admin:set-announcement',
|
|
@@ -25,6 +26,7 @@ export function initAdminMessageBus(engine, admins, adminToolkitUiEntity, player
|
|
|
25
26
|
const authoritativeVideo = new Map();
|
|
26
27
|
let authoritativeAnnouncement = null;
|
|
27
28
|
let adminHasActed = false;
|
|
29
|
+
let receivedRemoteState = false;
|
|
28
30
|
function isAdminWallet(sender) {
|
|
29
31
|
if (isPreview())
|
|
30
32
|
return true;
|
|
@@ -141,7 +143,9 @@ export function initAdminMessageBus(engine, admins, adminToolkitUiEntity, player
|
|
|
141
143
|
return;
|
|
142
144
|
emitMessage(MSG.SYNC_STATE, { video, announcement });
|
|
143
145
|
}
|
|
144
|
-
onAdminMessage(MSG.SYNC_STATE, (payload,
|
|
146
|
+
onAdminMessage(MSG.SYNC_STATE, (payload, sender) => {
|
|
147
|
+
if (sender !== 'self' && payload.video.length > 0)
|
|
148
|
+
receivedRemoteState = true;
|
|
145
149
|
for (const vs of payload.video) {
|
|
146
150
|
const entity = vs.entity;
|
|
147
151
|
authoritativeVideo.set(entity, {
|
|
@@ -183,7 +187,18 @@ export function initAdminMessageBus(engine, admins, adminToolkitUiEntity, player
|
|
|
183
187
|
onAdminMessage(MSG.SYNC_ADMINS, (_payload, _sender) => {
|
|
184
188
|
onRefetchAdmins?.();
|
|
185
189
|
});
|
|
190
|
+
const REQUEST_RETRY_INTERVAL_MS = 1000;
|
|
191
|
+
const MAX_REQUEST_ATTEMPTS = 10;
|
|
192
|
+
let requestAttempts = 1;
|
|
186
193
|
emitMessage(MSG.REQUEST_STATE, {});
|
|
194
|
+
const requestStateRetry = setInterval(engine, () => {
|
|
195
|
+
if (receivedRemoteState || requestAttempts >= MAX_REQUEST_ATTEMPTS) {
|
|
196
|
+
clearInterval(engine, requestStateRetry);
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
requestAttempts += 1;
|
|
200
|
+
emitMessage(MSG.REQUEST_STATE, {});
|
|
201
|
+
}, REQUEST_RETRY_INTERVAL_MS);
|
|
187
202
|
engine.addSystem(() => {
|
|
188
203
|
for (const [entity, authState] of authoritativeVideo) {
|
|
189
204
|
const vp = VideoPlayer.getOrNull(entity);
|
|
@@ -228,4 +243,4 @@ export function initAdminMessageBus(engine, admins, adminToolkitUiEntity, player
|
|
|
228
243
|
};
|
|
229
244
|
return instance;
|
|
230
245
|
}
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbWVzc2FnZS1idXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9hZG1pbi1tZXNzYWdlLWJ1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLElBQUksU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQXFCdkQsTUFBTSxHQUFHLEdBQUc7SUFDVixTQUFTLEVBQUUsaUJBQWlCO0lBQzVCLGdCQUFnQixFQUFFLHdCQUF3QjtJQUMxQyxrQkFBa0IsRUFBRSwwQkFBMEI7SUFDOUMsYUFBYSxFQUFFLHFCQUFxQjtJQUNwQyxVQUFVLEVBQUUsa0JBQWtCO0lBQzlCLFdBQVcsRUFBRSxtQkFBbUI7Q0FDeEIsQ0FBQztBQVlYLElBQUksUUFBUSxHQUFtQyxJQUFJLENBQUM7QUFFcEQsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxJQUFJLENBQUMsUUFBUTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNsRSxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBSUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxNQUFlLEVBQ2YsTUFBb0IsRUFDcEIsb0JBQTRCLEVBQzVCLGFBQThCLEVBQzlCLGVBQTRCO0lBRTVCLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUV6QixNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxHQUFHLHFCQUFxQixDQUFDLE1B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QyxDQUFDO0lBSUgsUUFBUSxHQUFHO1FBQ1QsWUFBWSxDQUFDLE1BQWMsRUFBRSxLQUE2QjtZQUN4RCxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssRUFBNkIsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFFRCxtQkFBbUIsQ0FBQyxJQUFZLEVBQUUsTUFBZSxFQUFFLEVBQVc7WUFDNUQsV0FBVyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDaEMsSUFBSTtnQkFDSixNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUU7Z0JBQ3BCLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRTthQUNiLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxxQkFBcUI7WUFDbkIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsY0FBYztZQUNaLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFFRCxlQUFlLENBQUMsTUFBb0I7WUFDbEMsV0FBVyxHQUFHLE1BQU0sQ0FBQztRQUN2QixDQUFDO0tBQ0YsQ0FBQztJQUVGLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFkbWluIE1lc3NhZ2UgQnVzXG4gKlxuICogU2VjdXJlcyBhZG1pbi1jb250cm9sbGVkIGNvbXBvbmVudHMgKFZpZGVvUGxheWVyLCBUZXh0QW5ub3VuY2VtZW50cykgYWdhaW5zdFxuICogdW5hdXRob3JpemVkIENSRFQgb3ZlcndyaXRlcyBieSBtb3ZpbmcgYWRtaW4gc3RhdGUgY2hhbmdlcyB0byBhIHNlcGFyYXRlXG4gKiBjb21tdW5pY2F0aW9uIGNoYW5uZWwuXG4gKlxuICogQXJjaGl0ZWN0dXJlOlxuICpcbiAqICAgMS4gQ1JEVCBzeW5jIGZvciBWaWRlb1BsYXllciBpcyBESVNBQkxFRCBvbiBhZG1pbi1jb250cm9sbGVkIGVudGl0aWVzIGJ5XG4gKiAgICAgIHJlbW92aW5nIGl0IGZyb20gU3luY0NvbXBvbmVudHMuIFRoaXMgcHJldmVudHMgYXR0YWNrZXIgQ1JEVCB3cml0ZXNcbiAqICAgICAgZnJvbSBwcm9wYWdhdGluZyB0aHJvdWdoIHRoZSBub3JtYWwgc3luYyB0cmFuc3BvcnQuXG4gKlxuICogICAyLiBBZG1pbiBjb21tYW5kcyBmbG93IHZpYSB0aGUgVEVYVCBjb21tcyBjaGFubmVsIChNZXNzYWdlQnVzKSwgd2hpY2ggaXMgYVxuICogICAgICBzZXBhcmF0ZSB0cmFuc3BvcnQgZnJvbSB0aGUgYmluYXJ5IENSRFQgY2hhbm5lbC4gQWxsIHBhcnRpY2lwYW50c1xuICogICAgICByZWNlaXZlIGFkbWluIGNvbW1hbmRzIHRocm91Z2ggdGhpcyBjaGFubmVsIGFuZCB2YWxpZGF0ZSB0aGUgc2VuZGVyJ3NcbiAqICAgICAgd2FsbGV0IGFkZHJlc3MgYWdhaW5zdCB0aGUgc2NlbmUgYWRtaW4gbGlzdCBiZWZvcmUgYXBwbHlpbmcuXG4gKlxuICogICAzLiBPbiBsb2FkLCBlYWNoIGNsaWVudCBzZWVkcyBhdXRob3JpdGF0aXZlIHN0YXRlIGZyb21cbiAqICAgICAgVmlkZW9TY3JlZW4uZGVmYXVsdFVSTCAoZGVwbG95LXRpbWUgdmFsdWUsIG5vdCB3cml0YWJsZSB2aWEgQ1JEVCkuXG4gKiAgICAgIEEgcGVyLWZyYW1lIHJldmVydCBzeXN0ZW0gZW5mb3JjZXMgdGhpcyBzdGF0ZSBhZ2FpbnN0IGFueSByYXcgQ1JEVFxuICogICAgICB3cml0ZXMgaW5qZWN0ZWQgZGlyZWN0bHkgdmlhIExpdmVLaXQuXG4gKlxuICogICA0LiBMYXRlIGpvaW5lcnMgcmVxdWVzdCBzdGF0ZSBmcm9tIGV4aXN0aW5nIHBhcnRpY2lwYW50cyB2aWEgYVxuICogICAgICByZXF1ZXN0L3Jlc3BvbnNlIGhhbmRzaGFrZSBvdmVyIHRoZSBNZXNzYWdlQnVzLlxuICpcbiAqIFNlbmRpbmcgdXNlcyBjb21tdW5pY2F0aW9uc0NvbnRyb2xsZXIuc2VuZCgpIGRpcmVjdGx5IHJhdGhlciB0aGFuIHRoZVxuICogTWVzc2FnZUJ1cyBjbGFzcydzIGVtaXQoKSwgYmVjYXVzZSB0aGUgY2xhc3MncyBpbnRlcm5hbCBmbHVzaCBxdWV1ZSBkcm9wc1xuICogc3Vic2VxdWVudCBtZXNzYWdlcy4gUmVjZWl2aW5nIHVzZXMgTWVzc2FnZUJ1cy5vbigpLCB3aGljaCByZWdpc3RlcnMgb24gdGhlXG4gKiBnbG9iYWwgb25Db21tc01lc3NhZ2Ugb2JzZXJ2YWJsZSBhbmQgd29ya3MgcmVsaWFibHkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBFbnRpdHksIElFbmdpbmUsIFBCVmlkZW9QbGF5ZXIgfSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgeyBNZXNzYWdlQnVzIH0gZnJvbSAnQGRjbC9zZGsvbWVzc2FnZS1idXMnO1xuaW1wb3J0IHsgc2VuZCBhcyBjb21tc1NlbmQgfSBmcm9tICd+c3lzdGVtL0NvbW11bmljYXRpb25zQ29udHJvbGxlcic7XG5pbXBvcnQgeyBnZXRFeHBsb3JlckNvbXBvbmVudHMgfSBmcm9tICcuLi9jb21wb25lbnRzJztcbmltcG9ydCB7IGdldENvbXBvbmVudHMgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IElQbGF5ZXJzSGVscGVyIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXNQcmV2aWV3IH0gZnJvbSAnLi9mZXRjaC11dGlscyc7XG5pbXBvcnQgdHlwZSB7IFNjZW5lQWRtaW4gfSBmcm9tICcuL01vZGVyYXRpb25Db250cm9sJztcbmltcG9ydCB7IGdldFZpZGVvUGxheWVycyB9IGZyb20gJy4vVmlkZW9Db250cm9sL3V0aWxzJztcblxuLy8g4pSA4pSAIFR5cGVzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG50eXBlIFZpZGVvU3RhdGUgPSBQaWNrPFBCVmlkZW9QbGF5ZXIsICdzcmMnIHwgJ3BsYXlpbmcnIHwgJ3ZvbHVtZScgfCAnbG9vcCc+O1xuXG50eXBlIEFubm91bmNlbWVudFN0YXRlID0ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGF1dGhvcjogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xufTtcblxuaW50ZXJmYWNlIFN5bmNTdGF0ZVBheWxvYWQge1xuICB2aWRlbzogQXJyYXk8eyBlbnRpdHk6IG51bWJlciB9ICYgVmlkZW9TdGF0ZT47XG4gIGFubm91bmNlbWVudDogQW5ub3VuY2VtZW50U3RhdGUgfCBudWxsO1xufVxuXG50eXBlIE1lc3NhZ2VIYW5kbGVyID0gKHBheWxvYWQ6IGFueSwgc2VuZGVyOiBzdHJpbmcpID0+IHZvaWQ7XG5cbi8vIOKUgOKUgCBNZXNzYWdlIGlkZW50aWZpZXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5jb25zdCBNU0cgPSB7XG4gIFNFVF9WSURFTzogJ2FkbWluOnNldC12aWRlbycsXG4gIFNFVF9BTk5PVU5DRU1FTlQ6ICdhZG1pbjpzZXQtYW5ub3VuY2VtZW50JyxcbiAgQ0xFQVJfQU5OT1VOQ0VNRU5UOiAnYWRtaW46Y2xlYXItYW5ub3VuY2VtZW50JyxcbiAgUkVRVUVTVF9TVEFURTogJ2FkbWluOnJlcXVlc3Qtc3RhdGUnLFxuICBTWU5DX1NUQVRFOiAnYWRtaW46c3luYy1zdGF0ZScsXG4gIFNZTkNfQURNSU5TOiAnYWRtaW46c3luYy1hZG1pbnMnLFxufSBhcyBjb25zdDtcblxuLy8g4pSA4pSAIFB1YmxpYyBpbnRlcmZhY2Ug4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRtaW5NZXNzYWdlQnVzSW5zdGFuY2Uge1xuICBlbWl0U2V0VmlkZW8oZW50aXR5OiBFbnRpdHksIHByb3BzOiBQYXJ0aWFsPFBCVmlkZW9QbGF5ZXI+KTogdm9pZDtcbiAgZW1pdFNldEFubm91bmNlbWVudCh0ZXh0OiBzdHJpbmcsIGF1dGhvcj86IHN0cmluZywgaWQ/OiBzdHJpbmcpOiB2b2lkO1xuICBlbWl0Q2xlYXJBbm5vdW5jZW1lbnQoKTogdm9pZDtcbiAgZW1pdFN5bmNBZG1pbnMoKTogdm9pZDtcbiAgdXBkYXRlQWRtaW5MaXN0KGFkbWluczogU2NlbmVBZG1pbltdKTogdm9pZDtcbn1cblxubGV0IGluc3RhbmNlOiBBZG1pbk1lc3NhZ2VCdXNJbnN0YW5jZSB8IG51bGwgPSBudWxsO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRtaW5NZXNzYWdlQnVzKCk6IEFkbWluTWVzc2FnZUJ1c0luc3RhbmNlIHtcbiAgaWYgKCFpbnN0YW5jZSkgdGhyb3cgbmV3IEVycm9yKCdBZG1pbk1lc3NhZ2VCdXMgbm90IGluaXRpYWxpemVkJyk7XG4gIHJldHVybiBpbnN0YW5jZTtcbn1cblxuLy8g4pSA4pSAIEluaXRpYWxpemF0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdEFkbWluTWVzc2FnZUJ1cyhcbiAgZW5naW5lOiBJRW5naW5lLFxuICBhZG1pbnM6IFNjZW5lQWRtaW5bXSxcbiAgYWRtaW5Ub29sa2l0VWlFbnRpdHk6IEVudGl0eSxcbiAgcGxheWVyc0hlbHBlcj86IElQbGF5ZXJzSGVscGVyLFxuICBvblJlZmV0Y2hBZG1pbnM/OiAoKSA9PiB2b2lkLFxuKTogQWRtaW5NZXNzYWdlQnVzSW5zdGFuY2Uge1xuICBsZXQgc2NlbmVBZG1pbnMgPSBhZG1pbnM7XG5cbiAgY29uc3QgeyBWaWRlb1BsYXllciwgU3luY0NvbXBvbmVudHMgfSA9IGdldEV4cGxvcmVyQ29tcG9uZW50cyhlbmdpbmUpO1xuICBjb25zdCB7IFRleHRBbm5vdW5jZW1lbnRzLCBWaWRlb1NjcmVlbiB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpO1xuXG4gIGNvbnN0IGF1dGhvcml0YXRpdmVWaWRlbyA9IG5ldyBNYXA8RW50aXR5LCBWaWRlb1N0YXRlPigpO1xuICBsZXQgYXV0aG9yaXRhdGl2ZUFubm91bmNlbWVudDogQW5ub3VuY2VtZW50U3RhdGUgfCBudWxsID0gbnVsbDtcbiAgbGV0IGFkbWluSGFzQWN0ZWQgPSBmYWxzZTtcblxuICBmdW5jdGlvbiBpc0FkbWluV2FsbGV0KHNlbmRlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzUHJldmlldygpKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoc2VuZGVyID09PSAnc2VsZicpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBzY2VuZUFkbWlucy5zb21lKGFkbWluID0+IGFkbWluLmFkZHJlc3MudG9Mb3dlckNhc2UoKSA9PT0gc2VuZGVyLnRvTG93ZXJDYXNlKCkpO1xuICB9XG5cbiAgLy8g4pSA4pSAIE1lc3NhZ2luZyBsYXllciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLy9cbiAgLy8gTG9jYWwgZGVsaXZlcnk6IGhhbmRsZXJzIGFyZSBjYWxsZWQgc3luY2hyb25vdXNseSBvbiBlbWl0LlxuICAvLyBSZW1vdGUgZGVsaXZlcnk6IGNvbW11bmljYXRpb25zQ29udHJvbGxlci5zZW5kKCkgKGJ5cGFzc2VzIE1lc3NhZ2VCdXMgZmx1c2ggcXVldWUpLlxuICAvLyBSZW1vdGUgcmVjZXB0aW9uOiBNZXNzYWdlQnVzLm9uKCkgKGxpc3RlbnMgb24gdGhlIGdsb2JhbCBvbkNvbW1zTWVzc2FnZSBvYnNlcnZhYmxlKS5cblxuICBjb25zdCBoYW5kbGVycyA9IG5ldyBNYXA8c3RyaW5nLCBNZXNzYWdlSGFuZGxlcj4oKTtcbiAgY29uc3QgcmVjZWl2ZXIgPSBuZXcgTWVzc2FnZUJ1cygpO1xuXG4gIGZ1bmN0aW9uIG9uTWVzc2FnZSh0eXBlOiBzdHJpbmcsIGhhbmRsZXI6IE1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgaGFuZGxlcnMuc2V0KHR5cGUsIGhhbmRsZXIpO1xuICAgIHJlY2VpdmVyLm9uKHR5cGUsIGhhbmRsZXIpO1xuICB9XG5cbiAgZnVuY3Rpb24gb25BZG1pbk1lc3NhZ2UodHlwZTogc3RyaW5nLCBoYW5kbGVyOiBNZXNzYWdlSGFuZGxlcikge1xuICAgIG9uTWVzc2FnZSh0eXBlLCAocGF5bG9hZCwgc2VuZGVyKSA9PiB7XG4gICAgICBpZiAoIWlzQWRtaW5XYWxsZXQoc2VuZGVyKSkgcmV0dXJuO1xuICAgICAgaGFuZGxlcihwYXlsb2FkLCBzZW5kZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gZW1pdE1lc3NhZ2UodHlwZTogc3RyaW5nLCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgIGNvbnN0IGhhbmRsZXIgPSBoYW5kbGVycy5nZXQodHlwZSk7XG4gICAgaWYgKGhhbmRsZXIpIGhhbmRsZXIocGF5bG9hZCwgJ3NlbGYnKTtcblxuICAgIGNvbnN0IHJhdyA9IEpTT04uc3RyaW5naWZ5KHsgbWVzc2FnZTogdHlwZSwgcGF5bG9hZCB9KTtcbiAgICBjb21tc1NlbmQoeyBtZXNzYWdlOiByYXcgfSkuY2F0Y2goKCkgPT4ge30pO1xuICB9XG5cbiAgLy8g4pSA4pSAIDEuIERpc2FibGUgQ1JEVCBzeW5jIGZvciBWaWRlb1BsYXllciBvbiBhZG1pbi1jb250cm9sbGVkIGVudGl0aWVzIOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIGZvciAoY29uc3QgdnAgb2YgZ2V0VmlkZW9QbGF5ZXJzKGVuZ2luZSkpIHtcbiAgICBjb25zdCBlbnRpdHkgPSB2cC5lbnRpdHkgYXMgRW50aXR5O1xuICAgIGNvbnN0IHN5bmMgPSBTeW5jQ29tcG9uZW50cy5nZXRPck51bGwoZW50aXR5KTtcbiAgICBpZiAoc3luYykge1xuICAgICAgY29uc3Qgd2l0aG91dFZpZGVvUGxheWVyID0gc3luYy5jb21wb25lbnRJZHMuZmlsdGVyKFxuICAgICAgICAoaWQ6IG51bWJlcikgPT4gaWQgIT09IFZpZGVvUGxheWVyLmNvbXBvbmVudElkLFxuICAgICAgKTtcbiAgICAgIFN5bmNDb21wb25lbnRzLmNyZWF0ZU9yUmVwbGFjZShlbnRpdHksIHsgY29tcG9uZW50SWRzOiB3aXRob3V0VmlkZW9QbGF5ZXIgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8g4pSA4pSAIDIuIFNlZWQgYXV0aG9yaXRhdGl2ZSBzdGF0ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLy8gVmlkZW9QbGF5ZXI6IHNlZWRlZCBmcm9tIFZpZGVvU2NyZWVuLmRlZmF1bHRVUkwgKGRlcGxveS10aW1lLCB0cnVzdGVkKS5cbiAgLy8gVGV4dEFubm91bmNlbWVudHM6IHNlZWRlZCBhcyBlbXB0eSAobm8gZGVmYXVsdCBhbm5vdW5jZW1lbnQgYXQgZGVwbG95IHRpbWUpLlxuXG4gIGF1dGhvcml0YXRpdmVBbm5vdW5jZW1lbnQgPSB7IHRleHQ6ICcnLCBhdXRob3I6ICcnLCBpZDogJycgfTtcblxuICBmb3IgKGNvbnN0IHZwIG9mIGdldFZpZGVvUGxheWVycyhlbmdpbmUpKSB7XG4gICAgY29uc3QgZW50aXR5ID0gdnAuZW50aXR5IGFzIEVudGl0eTtcbiAgICBjb25zdCBzY3JlZW4gPSBWaWRlb1NjcmVlbi5nZXRPck51bGwoZW50aXR5KTtcbiAgICBjb25zdCB2aWRlbyA9IFZpZGVvUGxheWVyLmdldE9yTnVsbChlbnRpdHkpO1xuICAgIGlmICghdmlkZW8pIGNvbnRpbnVlO1xuXG4gICAgY29uc3Qgc3JjID0gc2NyZWVuPy5kZWZhdWx0VVJMIHx8IHZpZGVvLnNyYztcbiAgICBhdXRob3JpdGF0aXZlVmlkZW8uc2V0KGVudGl0eSwge1xuICAgICAgc3JjLFxuICAgICAgcGxheWluZzogdmlkZW8ucGxheWluZyxcbiAgICAgIHZvbHVtZTogdmlkZW8udm9sdW1lLFxuICAgICAgbG9vcDogdmlkZW8ubG9vcCxcbiAgICB9KTtcblxuICAgIGlmICh2aWRlby5zcmMgIT09IHNyYykge1xuICAgICAgVmlkZW9QbGF5ZXIuZ2V0TXV0YWJsZShlbnRpdHkpLnNyYyA9IHNyYztcbiAgICB9XG4gIH1cblxuICAvLyDilIDilIAgMy4gUmVnaXN0ZXIgY29tbWFuZCBoYW5kbGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICBvbkFkbWluTWVzc2FnZShNU0cuU0VUX1ZJREVPLCAocGF5bG9hZCwgX3NlbmRlcikgPT4ge1xuICAgIGNvbnN0IGVudGl0eSA9IHBheWxvYWQuZW50aXR5IGFzIEVudGl0eTtcbiAgICBjb25zdCBjdXJyZW50ID0gVmlkZW9QbGF5ZXIuZ2V0T3JOdWxsKGVudGl0eSk7XG4gICAgaWYgKCFjdXJyZW50KSByZXR1cm47XG5cbiAgICBjb25zdCB1cGRhdGVkOiBWaWRlb1N0YXRlID0ge1xuICAgICAgc3JjOiBwYXlsb2FkLnNyYyA/PyBjdXJyZW50LnNyYyxcbiAgICAgIHBsYXlpbmc6IHBheWxvYWQucGxheWluZyA/PyBjdXJyZW50LnBsYXlpbmcsXG4gICAgICB2b2x1bWU6IHBheWxvYWQudm9sdW1lID8/IGN1cnJlbnQudm9sdW1lLFxuICAgICAgbG9vcDogcGF5bG9hZC5sb29wID8/IGN1cnJlbnQubG9vcCxcbiAgICB9O1xuICAgIGF1dGhvcml0YXRpdmVWaWRlby5zZXQoZW50aXR5LCB1cGRhdGVkKTtcblxuICAgIGNvbnN0IHZpZGVvID0gVmlkZW9QbGF5ZXIuZ2V0TXV0YWJsZShlbnRpdHkpO1xuICAgIHZpZGVvLnNyYyA9IHVwZGF0ZWQuc3JjO1xuICAgIHZpZGVvLnBsYXlpbmcgPSB1cGRhdGVkLnBsYXlpbmc7XG4gICAgdmlkZW8udm9sdW1lID0gdXBkYXRlZC52b2x1bWU7XG4gICAgdmlkZW8ubG9vcCA9IHVwZGF0ZWQubG9vcDtcbiAgICBpZiAocGF5bG9hZC5wb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB2aWRlby5wb3NpdGlvbiA9IHBheWxvYWQucG9zaXRpb247XG5cbiAgICBhZG1pbkhhc0FjdGVkID0gdHJ1ZTtcbiAgfSk7XG5cbiAgb25BZG1pbk1lc3NhZ2UoTVNHLlNFVF9BTk5PVU5DRU1FTlQsIChwYXlsb2FkLCBfc2VuZGVyKSA9PiB7XG4gICAgYXV0aG9yaXRhdGl2ZUFubm91bmNlbWVudCA9IHtcbiAgICAgIHRleHQ6IHBheWxvYWQudGV4dCxcbiAgICAgIGF1dGhvcjogcGF5bG9hZC5hdXRob3IsXG4gICAgICBpZDogcGF5bG9hZC5pZCxcbiAgICB9O1xuICAgIGNvbnN0IHRhID0gVGV4dEFubm91bmNlbWVudHMuZ2V0TXV0YWJsZU9yTnVsbChhZG1pblRvb2xraXRVaUVudGl0eSk7XG4gICAgaWYgKCF0YSkgcmV0dXJuO1xuICAgIHRhLnRleHQgPSBwYXlsb2FkLnRleHQ7XG4gICAgdGEuYXV0aG9yID0gcGF5bG9hZC5hdXRob3I7XG4gICAgdGEuaWQgPSBwYXlsb2FkLmlkO1xuICAgIGFkbWluSGFzQWN0ZWQgPSB0cnVlO1xuICB9KTtcblxuICBvbkFkbWluTWVzc2FnZShNU0cuQ0xFQVJfQU5OT1VOQ0VNRU5ULCAoX3BheWxvYWQsIF9zZW5kZXIpID0+IHtcbiAgICBhdXRob3JpdGF0aXZlQW5ub3VuY2VtZW50ID0geyB0ZXh0OiAnJywgYXV0aG9yOiAnJywgaWQ6ICcnIH07XG4gICAgY29uc3QgdGEgPSBUZXh0QW5ub3VuY2VtZW50cy5nZXRNdXRhYmxlT3JOdWxsKGFkbWluVG9vbGtpdFVpRW50aXR5KTtcbiAgICBpZiAoIXRhKSByZXR1cm47XG4gICAgdGEudGV4dCA9ICcnO1xuICAgIHRhLmF1dGhvciA9ICcnO1xuICAgIHRhLmlkID0gJyc7XG4gICAgYWRtaW5IYXNBY3RlZCA9IHRydWU7XG4gIH0pO1xuXG4gIC8vIOKUgOKUgCA0LiBTdGF0ZSBzeW5jIGZvciBsYXRlIGpvaW5lcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgZnVuY3Rpb24gYnJvYWRjYXN0Q3VycmVudFN0YXRlKCkge1xuICAgIGNvbnN0IHZpZGVvOiBTeW5jU3RhdGVQYXlsb2FkWyd2aWRlbyddID0gW107XG4gICAgZm9yIChjb25zdCB2cCBvZiBnZXRWaWRlb1BsYXllcnMoZW5naW5lKSkge1xuICAgICAgY29uc3QgZW50aXR5ID0gdnAuZW50aXR5IGFzIEVudGl0eTtcbiAgICAgIGNvbnN0IHNjcmVlbiA9IFZpZGVvU2NyZWVuLmdldE9yTnVsbChlbnRpdHkpO1xuICAgICAgY29uc3QgY3VycmVudCA9IFZpZGVvUGxheWVyLmdldE9yTnVsbChlbnRpdHkpO1xuICAgICAgaWYgKCFjdXJyZW50KSBjb250aW51ZTtcbiAgICAgIGlmIChjdXJyZW50LnNyYyAhPT0gKHNjcmVlbj8uZGVmYXVsdFVSTCB8fCAnJykpIHtcbiAgICAgICAgdmlkZW8ucHVzaCh7IGVudGl0eTogZW50aXR5IGFzIG51bWJlciwgLi4uY3VycmVudCB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB0YSA9IFRleHRBbm5vdW5jZW1lbnRzLmdldE9yTnVsbChhZG1pblRvb2xraXRVaUVudGl0eSk7XG4gICAgY29uc3QgYW5ub3VuY2VtZW50ID0gdGE/LmlkID8geyB0ZXh0OiB0YS50ZXh0LCBhdXRob3I6IHRhLmF1dGhvciA/PyAnJywgaWQ6IHRhLmlkIH0gOiBudWxsO1xuXG4gICAgaWYgKHZpZGVvLmxlbmd0aCA9PT0gMCAmJiAhYW5ub3VuY2VtZW50KSByZXR1cm47XG4gICAgZW1pdE1lc3NhZ2UoTVNHLlNZTkNfU1RBVEUsIHsgdmlkZW8sIGFubm91bmNlbWVudCB9KTtcbiAgfVxuXG4gIG9uQWRtaW5NZXNzYWdlKE1TRy5TWU5DX1NUQVRFLCAocGF5bG9hZDogU3luY1N0YXRlUGF5bG9hZCwgX3NlbmRlcikgPT4ge1xuICAgIGZvciAoY29uc3QgdnMgb2YgcGF5bG9hZC52aWRlbykge1xuICAgICAgY29uc3QgZW50aXR5ID0gdnMuZW50aXR5IGFzIEVudGl0eTtcbiAgICAgIGF1dGhvcml0YXRpdmVWaWRlby5zZXQoZW50aXR5LCB7XG4gICAgICAgIHNyYzogdnMuc3JjLFxuICAgICAgICBwbGF5aW5nOiB2cy5wbGF5aW5nLFxuICAgICAgICB2b2x1bWU6IHZzLnZvbHVtZSxcbiAgICAgICAgbG9vcDogdnMubG9vcCxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgdmlkZW8gPSBWaWRlb1BsYXllci5nZXRNdXRhYmxlT3JOdWxsKGVudGl0eSk7XG4gICAgICBpZiAoIXZpZGVvKSBjb250aW51ZTtcbiAgICAgIHZpZGVvLnNyYyA9IHZzLnNyYztcbiAgICAgIGlmICh2cy5wbGF5aW5nICE9PSB1bmRlZmluZWQpIHZpZGVvLnBsYXlpbmcgPSB2cy5wbGF5aW5nO1xuICAgICAgaWYgKHZzLnZvbHVtZSAhPT0gdW5kZWZpbmVkKSB2aWRlby52b2x1bWUgPSB2cy52b2x1bWU7XG4gICAgICBpZiAodnMubG9vcCAhPT0gdW5kZWZpbmVkKSB2aWRlby5sb29wID0gdnMubG9vcDtcbiAgICB9XG5cbiAgICBpZiAocGF5bG9hZC5hbm5vdW5jZW1lbnQ/LmlkKSB7XG4gICAgICBhdXRob3JpdGF0aXZlQW5ub3VuY2VtZW50ID0geyAuLi5wYXlsb2FkLmFubm91bmNlbWVudCB9O1xuICAgICAgY29uc3QgdGEgPSBUZXh0QW5ub3VuY2VtZW50cy5nZXRNdXRhYmxlT3JOdWxsKGFkbWluVG9vbGtpdFVpRW50aXR5KTtcbiAgICAgIGlmICh0YSkge1xuICAgICAgICB0YS50ZXh0ID0gcGF5bG9hZC5hbm5vdW5jZW1lbnQudGV4dDtcbiAgICAgICAgdGEuYXV0aG9yID0gcGF5bG9hZC5hbm5vdW5jZW1lbnQuYXV0aG9yO1xuICAgICAgICB0YS5pZCA9IHBheWxvYWQuYW5ub3VuY2VtZW50LmlkO1xuICAgICAgfVxuICAgIH1cblxuICAgIGFkbWluSGFzQWN0ZWQgPSB0cnVlO1xuICB9KTtcblxuICBvbk1lc3NhZ2UoTVNHLlJFUVVFU1RfU1RBVEUsIChfcGF5bG9hZCwgX3NlbmRlcikgPT4ge1xuICAgIGlmIChhZG1pbkhhc0FjdGVkKSBicm9hZGNhc3RDdXJyZW50U3RhdGUoKTtcbiAgfSk7XG5cbiAgcGxheWVyc0hlbHBlcj8ub25FbnRlclNjZW5lKCgpID0+IHtcbiAgICBpZiAoYWRtaW5IYXNBY3RlZCkgYnJvYWRjYXN0Q3VycmVudFN0YXRlKCk7XG4gIH0pO1xuXG4gIC8vIFdoZW4gYW4gYWRtaW4gc2lnbmFscyB0aGF0IHRoZSBhZG1pbiBsaXN0IGNoYW5nZWQsIGFsbCBwYXJ0aWNpcGFudHMgcmVmZXRjaFxuICBvbkFkbWluTWVzc2FnZShNU0cuU1lOQ19BRE1JTlMsIChfcGF5bG9hZCwgX3NlbmRlcikgPT4ge1xuICAgIG9uUmVmZXRjaEFkbWlucz8uKCk7XG4gIH0pO1xuXG4gIC8vIFJlcXVlc3Qgc3RhdGUgZnJvbSBhbnkgZXhpc3RpbmcgcGFydGljaXBhbnQgdGhhdCBoYXMgYWRtaW4gc3RhdGVcbiAgZW1pdE1lc3NhZ2UoTVNHLlJFUVVFU1RfU1RBVEUsIHt9KTtcblxuICAvLyDilIDilIAgNS4gUmV2ZXJ0IHN5c3RlbSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLy9cbiAgLy8gQXR0YWNrZXIgQ1JEVCB3cml0ZXMgYnlwYXNzIFN5bmNDb21wb25lbnRzIChpbmplY3RlZCBkaXJlY3RseSB2aWEgTGl2ZUtpdClcbiAgLy8gYnV0IGFyZSBjYXVnaHQgaGVyZS4gQWRtaW4gY29tbWFuZHMgdXBkYXRlIGF1dGhvcml0YXRpdmVWaWRlby9Bbm5vdW5jZW1lbnRcbiAgLy8gYmVmb3JlIG11dGF0aW5nIGNvbXBvbmVudHMsIHNvIGxlZ2l0aW1hdGUgY2hhbmdlcyBhcmUgbmV2ZXIgcmV2ZXJ0ZWQuXG5cbiAgZW5naW5lLmFkZFN5c3RlbSgoKSA9PiB7XG4gICAgZm9yIChjb25zdCBbZW50aXR5LCBhdXRoU3RhdGVdIG9mIGF1dGhvcml0YXRpdmVWaWRlbykge1xuICAgICAgY29uc3QgdnAgPSBWaWRlb1BsYXllci5nZXRPck51bGwoZW50aXR5KTtcbiAgICAgIGlmICghdnApIGNvbnRpbnVlO1xuICAgICAgaWYgKHZwLnNyYyAhPT0gYXV0aFN0YXRlLnNyYykge1xuICAgICAgICBjb25zdCBtdXQgPSBWaWRlb1BsYXllci5nZXRNdXRhYmxlKGVudGl0eSk7XG4gICAgICAgIG11dC5zcmMgPSBhdXRoU3RhdGUuc3JjO1xuICAgICAgICBtdXQucGxheWluZyA9IGF1dGhTdGF0ZS5wbGF5aW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhdXRob3JpdGF0aXZlQW5ub3VuY2VtZW50KSB7XG4gICAgICBjb25zdCB0YSA9IFRleHRBbm5vdW5jZW1lbnRzLmdldE9yTnVsbChhZG1pblRvb2xraXRVaUVudGl0eSk7XG4gICAgICBpZiAodGEgJiYgYXV0aG9yaXRhdGl2ZUFubm91bmNlbWVudC5pZCAmJiB0YS5pZCAhPT0gYXV0aG9yaXRhdGl2ZUFubm91bmNlbWVudC5pZCkge1xuICAgICAgICBjb25zdCBtdXQgPSBUZXh0QW5ub3VuY2VtZW50cy5nZXRNdXRhYmxlKGFkbWluVG9vbGtpdFVpRW50aXR5KTtcbiAgICAgICAgbXV0LnRleHQgPSBhdXRob3JpdGF0aXZlQW5ub3VuY2VtZW50LnRleHQ7XG4gICAgICAgIG11dC5hdXRob3IgPSBhdXRob3JpdGF0aXZlQW5ub3VuY2VtZW50LmF1dGhvcjtcbiAgICAgICAgbXV0LmlkID0gYXV0aG9yaXRhdGl2ZUFubm91bmNlbWVudC5pZDtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8vIOKUgOKUgCBJbnN0YW5jZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICBpbnN0YW5jZSA9IHtcbiAgICBlbWl0U2V0VmlkZW8oZW50aXR5OiBFbnRpdHksIHByb3BzOiBQYXJ0aWFsPFBCVmlkZW9QbGF5ZXI+KSB7XG4gICAgICBlbWl0TWVzc2FnZShNU0cuU0VUX1ZJREVPLCB7IGVudGl0eSwgLi4ucHJvcHMgfSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG4gICAgfSxcblxuICAgIGVtaXRTZXRBbm5vdW5jZW1lbnQodGV4dDogc3RyaW5nLCBhdXRob3I/OiBzdHJpbmcsIGlkPzogc3RyaW5nKSB7XG4gICAgICBlbWl0TWVzc2FnZShNU0cuU0VUX0FOTk9VTkNFTUVOVCwge1xuICAgICAgICB0ZXh0LFxuICAgICAgICBhdXRob3I6IGF1dGhvciA/PyAnJyxcbiAgICAgICAgaWQ6IGlkID8/ICcnLFxuICAgICAgfSk7XG4gICAgfSxcblxuICAgIGVtaXRDbGVhckFubm91bmNlbWVudCgpIHtcbiAgICAgIGVtaXRNZXNzYWdlKE1TRy5DTEVBUl9BTk5PVU5DRU1FTlQsIHt9KTtcbiAgICB9LFxuXG4gICAgZW1pdFN5bmNBZG1pbnMoKSB7XG4gICAgICBlbWl0TWVzc2FnZShNU0cuU1lOQ19BRE1JTlMsIHt9KTtcbiAgICB9LFxuXG4gICAgdXBkYXRlQWRtaW5MaXN0KGFkbWluczogU2NlbmVBZG1pbltdKSB7XG4gICAgICBzY2VuZUFkbWlucyA9IGFkbWlucztcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBpbnN0YW5jZTtcbn1cbiJdfQ==
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbWVzc2FnZS1idXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9hZG1pbi1tZXNzYWdlLWJ1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLElBQUksU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQXFCckQsTUFBTSxHQUFHLEdBQUc7SUFDVixTQUFTLEVBQUUsaUJBQWlCO0lBQzVCLGdCQUFnQixFQUFFLHdCQUF3QjtJQUMxQyxrQkFBa0IsRUFBRSwwQkFBMEI7SUFDOUMsYUFBYSxFQUFFLHFCQUFxQjtJQUNwQyxVQUFVLEVBQUUsa0JBQWtCO0lBQzlCLFdBQVcsRUFBRSxtQkFBbUI7Q0FDeEIsQ0FBQztBQVlYLElBQUksUUFBUSxHQUFtQyxJQUFJLENBQUM7QUFFcEQsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxJQUFJLENBQUMsUUFBUTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNsRSxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBSUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxNQUFlLEVBQ2YsTUFBb0IsRUFDcEIsb0JBQTRCLEVBQzVCLGFBQThCLEVBQzlCLGVBQTRCO0lBRTVCLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUV6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QUFHLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELGNBQWM7WUFDWixXQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsZUFBZSxDQUFDLE1BQW9CO1lBQ2xDLFdBQVcsR0FBRyxNQUFNLENBQUM7UUFDdkIsQ0FBQztLQUNGLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBZG1pbiBNZXNzYWdlIEJ1c1xuICpcbiAqIFNlY3VyZXMgYWRtaW4tY29udHJvbGxlZCBjb21wb25lbnRzIChWaWRlb1BsYXllciwgVGV4dEFubm91bmNlbWVudHMpIGFnYWluc3RcbiAqIHVuYXV0aG9yaXplZCBDUkRUIG92ZXJ3cml0ZXMgYnkgbW92aW5nIGFkbWluIHN0YXRlIGNoYW5nZXMgdG8gYSBzZXBhcmF0ZVxuICogY29tbXVuaWNhdGlvbiBjaGFubmVsLlxuICpcbiAqIEFyY2hpdGVjdHVyZTpcbiAqXG4gKiAgIDEuIENSRFQgc3luYyBmb3IgVmlkZW9QbGF5ZXIgaXMgRElTQUJMRUQgb24gYWRtaW4tY29udHJvbGxlZCBlbnRpdGllcyBieVxuICogICAgICByZW1vdmluZyBpdCBmcm9tIFN5bmNDb21wb25lbnRzLiBUaGlzIHByZXZlbnRzIGF0dGFja2VyIENSRFQgd3JpdGVzXG4gKiAgICAgIGZyb20gcHJvcGFnYXRpbmcgdGhyb3VnaCB0aGUgbm9ybWFsIHN5bmMgdHJhbnNwb3J0LlxuICpcbiAqICAgMi4gQWRtaW4gY29tbWFuZHMgZmxvdyB2aWEgdGhlIFRFWFQgY29tbXMgY2hhbm5lbCAoTWVzc2FnZUJ1cyksIHdoaWNoIGlzIGFcbiAqICAgICAgc2VwYXJhdGUgdHJhbnNwb3J0IGZyb20gdGhlIGJpbmFyeSBDUkRUIGNoYW5uZWwuIEFsbCBwYXJ0aWNpcGFudHNcbiAqICAgICAgcmVjZWl2ZSBhZG1pbiBjb21tYW5kcyB0aHJvdWdoIHRoaXMgY2hhbm5lbCBhbmQgdmFsaWRhdGUgdGhlIHNlbmRlcidzXG4gKiAgICAgIHdhbGxldCBhZGRyZXNzIGFnYWluc3QgdGhlIHNjZW5lIGFkbWluIGxpc3QgYmVmb3JlIGFwcGx5aW5nLlxuICpcbiAqICAgMy4gT24gbG9hZCwgZWFjaCBjbGllbnQgc2VlZHMgYXV0aG9yaXRhdGl2ZSBzdGF0ZSBmcm9tXG4gKiAgICAgIFZpZGVvU2NyZWVuLmRlZmF1bHRVUkwgKGRlcGxveS10aW1lIHZhbHVlLCBub3Qgd3JpdGFibGUgdmlhIENSRFQpLlxuICogICAgICBBIHBlci1mcmFtZSByZXZlcnQgc3lzdGVtIGVuZm9yY2VzIHRoaXMgc3RhdGUgYWdhaW5zdCBhbnkgcmF3IENSRFRcbiAqICAgICAgd3JpdGVzIGluamVjdGVkIGRpcmVjdGx5IHZpYSBMaXZlS2l0LlxuICpcbiAqICAgNC4gTGF0ZSBqb2luZXJzIHJlcXVlc3Qgc3RhdGUgZnJvbSBleGlzdGluZyBwYXJ0aWNpcGFudHMgdmlhIGFcbiAqICAgICAgcmVxdWVzdC9yZXNwb25zZSBoYW5kc2hha2Ugb3ZlciB0aGUgTWVzc2FnZUJ1cy5cbiAqXG4gKiBTZW5kaW5nIHVzZXMgY29tbXVuaWNhdGlvbnNDb250cm9sbGVyLnNlbmQoKSBkaXJlY3RseSByYXRoZXIgdGhhbiB0aGVcbiAqIE1lc3NhZ2VCdXMgY2xhc3MncyBlbWl0KCksIGJlY2F1c2UgdGhlIGNsYXNzJ3MgaW50ZXJuYWwgZmx1c2ggcXVldWUgZHJvcHNcbiAqIHN1YnNlcXVlbnQgbWVzc2FnZXMuIFJlY2VpdmluZyB1c2VzIE1lc3NhZ2VCdXMub24oKSwgd2hpY2ggcmVnaXN0ZXJzIG9uIHRoZVxuICogZ2xvYmFsIG9uQ29tbXNNZXNzYWdlIG9ic2VydmFibGUgYW5kIHdvcmtzIHJlbGlhYmx5LlxuICovXG5cbmltcG9ydCB0eXBlIHsgRW50aXR5LCBJRW5naW5lLCBQQlZpZGVvUGxheWVyIH0gZnJvbSAnQGRjbC9lY3MnO1xuaW1wb3J0IHsgTWVzc2FnZUJ1cyB9IGZyb20gJ0BkY2wvc2RrL21lc3NhZ2UtYnVzJztcbmltcG9ydCB7IHNlbmQgYXMgY29tbXNTZW5kIH0gZnJvbSAnfnN5c3RlbS9Db21tdW5pY2F0aW9uc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgZ2V0RXhwbG9yZXJDb21wb25lbnRzIH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBnZXRDb21wb25lbnRzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHR5cGUgeyBJUGxheWVyc0hlbHBlciB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzUHJldmlldyB9IGZyb20gJy4vZmV0Y2gtdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBTY2VuZUFkbWluIH0gZnJvbSAnLi9Nb2RlcmF0aW9uQ29udHJvbCc7XG5pbXBvcnQgeyBnZXRWaWRlb1BsYXllcnMgfSBmcm9tICcuL1ZpZGVvQ29udHJvbC91dGlscyc7XG5pbXBvcnQgeyBjbGVhckludGVydmFsLCBzZXRJbnRlcnZhbCB9IGZyb20gJy4vdXRpbHMnO1xuXG4vLyDilIDilIAgVHlwZXMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbnR5cGUgVmlkZW9TdGF0ZSA9IFBpY2s8UEJWaWRlb1BsYXllciwgJ3NyYycgfCAncGxheWluZycgfCAndm9sdW1lJyB8ICdsb29wJz47XG5cbnR5cGUgQW5ub3VuY2VtZW50U3RhdGUgPSB7XG4gIHRleHQ6IHN0cmluZztcbiAgYXV0aG9yOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG59O1xuXG5pbnRlcmZhY2UgU3luY1N0YXRlUGF5bG9hZCB7XG4gIHZpZGVvOiBBcnJheTx7IGVudGl0eTogbnVtYmVyIH0gJiBWaWRlb1N0YXRlPjtcbiAgYW5ub3VuY2VtZW50OiBBbm5vdW5jZW1lbnRTdGF0ZSB8IG51bGw7XG59XG5cbnR5cGUgTWVzc2FnZUhhbmRsZXIgPSAocGF5bG9hZDogYW55LCBzZW5kZXI6IHN0cmluZykgPT4gdm9pZDtcblxuLy8g4pSA4pSAIE1lc3NhZ2UgaWRlbnRpZmllcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmNvbnN0IE1TRyA9IHtcbiAgU0VUX1ZJREVPOiAnYWRtaW46c2V0LXZpZGVvJyxcbiAgU0VUX0FOTk9VTkNFTUVOVDogJ2FkbWluOnNldC1hbm5vdW5jZW1lbnQnLFxuICBDTEVBUl9BTk5PVU5DRU1FTlQ6ICdhZG1pbjpjbGVhci1hbm5vdW5jZW1lbnQnLFxuICBSRVFVRVNUX1NUQVRFOiAnYWRtaW46cmVxdWVzdC1zdGF0ZScsXG4gIFNZTkNfU1RBVEU6ICdhZG1pbjpzeW5jLXN0YXRlJyxcbiAgU1lOQ19BRE1JTlM6ICdhZG1pbjpzeW5jLWFkbWlucycsXG59IGFzIGNvbnN0O1xuXG4vLyDilIDilIAgUHVibGljIGludGVyZmFjZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IGludGVyZmFjZSBBZG1pbk1lc3NhZ2VCdXNJbnN0YW5jZSB7XG4gIGVtaXRTZXRWaWRlbyhlbnRpdHk6IEVudGl0eSwgcHJvcHM6IFBhcnRpYWw8UEJWaWRlb1BsYXllcj4pOiB2b2lkO1xuICBlbWl0U2V0QW5ub3VuY2VtZW50KHRleHQ6IHN0cmluZywgYXV0aG9yPzogc3RyaW5nLCBpZD86IHN0cmluZyk6IHZvaWQ7XG4gIGVtaXRDbGVhckFubm91bmNlbWVudCgpOiB2b2lkO1xuICBlbWl0U3luY0FkbWlucygpOiB2b2lkO1xuICB1cGRhdGVBZG1pbkxpc3QoYWRtaW5zOiBTY2VuZUFkbWluW10pOiB2b2lkO1xufVxuXG5sZXQgaW5zdGFuY2U6IEFkbWluTWVzc2FnZUJ1c0luc3RhbmNlIHwgbnVsbCA9IG51bGw7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZG1pbk1lc3NhZ2VCdXMoKTogQWRtaW5NZXNzYWdlQnVzSW5zdGFuY2Uge1xuICBpZiAoIWluc3RhbmNlKSB0aHJvdyBuZXcgRXJyb3IoJ0FkbWluTWVzc2FnZUJ1cyBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuXG4vLyDilIDilIAgSW5pdGlhbGl6YXRpb24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0QWRtaW5NZXNzYWdlQnVzKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIGFkbWluczogU2NlbmVBZG1pbltdLFxuICBhZG1pblRvb2xraXRVaUVudGl0eTogRW50aXR5LFxuICBwbGF5ZXJzSGVscGVyPzogSVBsYXllcnNIZWxwZXIsXG4gIG9uUmVmZXRjaEFkbWlucz86ICgpID0+IHZvaWQsXG4pOiBBZG1pbk1lc3NhZ2VCdXNJbnN0YW5jZSB7XG4gIGxldCBzY2VuZUFkbWlucyA9IGFkbWlucztcblxuICBjb25zdCB7IFZpZGVvUGxheWVyLCBTeW5jQ29tcG9uZW50cyB9ID0gZ2V0RXhwbG9yZXJDb21wb25lbnRzKGVuZ2luZSk7XG4gIGNvbnN0IHsgVGV4dEFubm91bmNlbWVudHMsIFZpZGVvU2NyZWVuIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG5cbiAgY29uc3QgYXV0aG9yaXRhdGl2ZVZpZGVvID0gbmV3IE1hcDxFbnRpdHksIFZpZGVvU3RhdGU+KCk7XG4gIGxldCBhdXRob3JpdGF0aXZlQW5ub3VuY2VtZW50OiBBbm5vdW5jZW1lbnRTdGF0ZSB8IG51bGwgPSBudWxsO1xuICBsZXQgYWRtaW5IYXNBY3RlZCA9IGZhbHNlO1xuICAvLyBUcnVlIG9uY2Ugd2UndmUgYXBwbGllZCBhdXRob3JpdGF0aXZlIHN0YXRlIGZyb20gYSAqcmVtb3RlKiBhZG1pbi4gR2F0ZXMgdGhlXG4gIC8vIGxhdGUtam9pbmVyIFJFUVVFU1RfU1RBVEUgcmV0cnkgYmVsb3cgKHNlZSB0aGUgcmV0cnkgYmxvY2sgZm9yIHdoeSkuXG4gIGxldCByZWNlaXZlZFJlbW90ZVN0YXRlID0gZmFsc2U7XG5cbiAgZnVuY3Rpb24gaXNBZG1pbldhbGxldChzZW5kZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChpc1ByZXZpZXcoKSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKHNlbmRlciA9PT0gJ3NlbGYnKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gc2NlbmVBZG1pbnMuc29tZShhZG1pbiA9PiBhZG1pbi5hZGRyZXNzLnRvTG93ZXJDYXNlKCkgPT09IHNlbmRlci50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBNZXNzYWdpbmcgbGF5ZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8vXG4gIC8vIExvY2FsIGRlbGl2ZXJ5OiBoYW5kbGVycyBhcmUgY2FsbGVkIHN5bmNocm9ub3VzbHkgb24gZW1pdC5cbiAgLy8gUmVtb3RlIGRlbGl2ZXJ5OiBjb21tdW5pY2F0aW9uc0NvbnRyb2xsZXIuc2VuZCgpIChieXBhc3NlcyBNZXNzYWdlQnVzIGZsdXNoIHF1ZXVlKS5cbiAgLy8gUmVtb3RlIHJlY2VwdGlvbjogTWVzc2FnZUJ1cy5vbigpIChsaXN0ZW5zIG9uIHRoZSBnbG9iYWwgb25Db21tc01lc3NhZ2Ugb2JzZXJ2YWJsZSkuXG5cbiAgY29uc3QgaGFuZGxlcnMgPSBuZXcgTWFwPHN0cmluZywgTWVzc2FnZUhhbmRsZXI+KCk7XG4gIGNvbnN0IHJlY2VpdmVyID0gbmV3IE1lc3NhZ2VCdXMoKTtcblxuICBmdW5jdGlvbiBvbk1lc3NhZ2UodHlwZTogc3RyaW5nLCBoYW5kbGVyOiBNZXNzYWdlSGFuZGxlcikge1xuICAgIGhhbmRsZXJzLnNldCh0eXBlLCBoYW5kbGVyKTtcbiAgICByZWNlaXZlci5vbih0eXBlLCBoYW5kbGVyKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uQWRtaW5NZXNzYWdlKHR5cGU6IHN0cmluZywgaGFuZGxlcjogTWVzc2FnZUhhbmRsZXIpIHtcbiAgICBvbk1lc3NhZ2UodHlwZSwgKHBheWxvYWQsIHNlbmRlcikgPT4ge1xuICAgICAgaWYgKCFpc0FkbWluV2FsbGV0KHNlbmRlcikpIHJldHVybjtcbiAgICAgIGhhbmRsZXIocGF5bG9hZCwgc2VuZGVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGVtaXRNZXNzYWdlKHR5cGU6IHN0cmluZywgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHtcbiAgICBjb25zdCBoYW5kbGVyID0gaGFuZGxlcnMuZ2V0KHR5cGUpO1xuICAgIGlmIChoYW5kbGVyKSBoYW5kbGVyKHBheWxvYWQsICdzZWxmJyk7XG5cbiAgICBjb25zdCByYXcgPSBKU09OLnN0cmluZ2lmeSh7IG1lc3NhZ2U6IHR5cGUsIHBheWxvYWQgfSk7XG4gICAgY29tbXNTZW5kKHsgbWVzc2FnZTogcmF3IH0pLmNhdGNoKCgpID0+IHt9KTtcbiAgfVxuXG4gIC8vIOKUgOKUgCAxLiBEaXNhYmxlIENSRFQgc3luYyBmb3IgVmlkZW9QbGF5ZXIgb24gYWRtaW4tY29udHJvbGxlZCBlbnRpdGllcyDilIDilIDilIDilIDilIDilIBcblxuICBmb3IgKGNvbnN0IHZwIG9mIGdldFZpZGVvUGxheWVycyhlbmdpbmUpKSB7XG4gICAgY29uc3QgZW50aXR5ID0gdnAuZW50aXR5IGFzIEVudGl0eTtcbiAgICBjb25zdCBzeW5jID0gU3luY0NvbXBvbmVudHMuZ2V0T3JOdWxsKGVudGl0eSk7XG4gICAgaWYgKHN5bmMpIHtcbiAgICAgIGNvbnN0IHdpdGhvdXRWaWRlb1BsYXllciA9IHN5bmMuY29tcG9uZW50SWRzLmZpbHRlcihcbiAgICAgICAgKGlkOiBudW1iZXIpID0+IGlkICE9PSBWaWRlb1BsYXllci5jb21wb25lbnRJZCxcbiAgICAgICk7XG4gICAgICBTeW5jQ29tcG9uZW50cy5jcmVhdGVPclJlcGxhY2UoZW50aXR5LCB7IGNvbXBvbmVudElkczogd2l0aG91dFZpZGVvUGxheWVyIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIOKUgOKUgCAyLiBTZWVkIGF1dGhvcml0YXRpdmUgc3RhdGUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8vIFZpZGVvUGxheWVyOiBzZWVkZWQgZnJvbSBWaWRlb1NjcmVlbi5kZWZhdWx0VVJMIChkZXBsb3ktdGltZSwgdHJ1c3RlZCkuXG4gIC8vIFRleHRBbm5vdW5jZW1lbnRzOiBzZWVkZWQgYXMgZW1wdHkgKG5vIGRlZmF1bHQgYW5ub3VuY2VtZW50IGF0IGRlcGxveSB0aW1lKS5cblxuICBhdXRob3JpdGF0aXZlQW5ub3VuY2VtZW50ID0geyB0ZXh0OiAnJywgYXV0aG9yOiAnJywgaWQ6ICcnIH07XG5cbiAgZm9yIChjb25zdCB2cCBvZiBnZXRWaWRlb1BsYXllcnMoZW5naW5lKSkge1xuICAgIGNvbnN0IGVudGl0eSA9IHZwLmVudGl0eSBhcyBFbnRpdHk7XG4gICAgY29uc3Qgc2NyZWVuID0gVmlkZW9TY3JlZW4uZ2V0T3JOdWxsKGVudGl0eSk7XG4gICAgY29uc3QgdmlkZW8gPSBWaWRlb1BsYXllci5nZXRPck51bGwoZW50aXR5KTtcbiAgICBpZiAoIXZpZGVvKSBjb250aW51ZTtcblxuICAgIGNvbnN0IHNyYyA9IHNjcmVlbj8uZGVmYXVsdFVSTCB8fCB2aWRlby5zcmM7XG4gICAgYXV0aG9yaXRhdGl2ZVZpZGVvLnNldChlbnRpdHksIHtcbiAgICAgIHNyYyxcbiAgICAgIHBsYXlpbmc6IHZpZGVvLnBsYXlpbmcsXG4gICAgICB2b2x1bWU6IHZpZGVvLnZvbHVtZSxcbiAgICAgIGxvb3A6IHZpZGVvLmxvb3AsXG4gICAgfSk7XG5cbiAgICBpZiAodmlkZW8uc3JjICE9PSBzcmMpIHtcbiAgICAgIFZpZGVvUGxheWVyLmdldE11dGFibGUoZW50aXR5KS5zcmMgPSBzcmM7XG4gICAgfVxuICB9XG5cbiAgLy8g4pSA4pSAIDMuIFJlZ2lzdGVyIGNvbW1hbmQgaGFuZGxlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgb25BZG1pbk1lc3NhZ2UoTVNHLlNFVF9WSURFTywgKHBheWxvYWQsIF9zZW5kZXIpID0+IHtcbiAgICBjb25zdCBlbnRpdHkgPSBwYXlsb2FkLmVudGl0eSBhcyBFbnRpdHk7XG4gICAgY29uc3QgY3VycmVudCA9IFZpZGVvUGxheWVyLmdldE9yTnVsbChlbnRpdHkpO1xuICAgIGlmICghY3VycmVudCkgcmV0dXJuO1xuXG4gICAgY29uc3QgdXBkYXRlZDogVmlkZW9TdGF0ZSA9IHtcbiAgICAgIHNyYzogcGF5bG9hZC5zcmMgPz8gY3VycmVudC5zcmMsXG4gICAgICBwbGF5aW5nOiBwYXlsb2FkLnBsYXlpbmcgPz8gY3VycmVudC5wbGF5aW5nLFxuICAgICAgdm9sdW1lOiBwYXlsb2FkLnZvbHVtZSA/PyBjdXJyZW50LnZvbHVtZSxcbiAgICAgIGxvb3A6IHBheWxvYWQubG9vcCA/PyBjdXJyZW50Lmxvb3AsXG4gICAgfTtcbiAgICBhdXRob3JpdGF0aXZlVmlkZW8uc2V0KGVudGl0eSwgdXBkYXRlZCk7XG5cbiAgICBjb25zdCB2aWRlbyA9IFZpZGVvUGxheWVyLmdldE11dGFibGUoZW50aXR5KTtcbiAgICB2aWRlby5zcmMgPSB1cGRhdGVkLnNyYztcbiAgICB2aWRlby5wbGF5aW5nID0gdXBkYXRlZC5wbGF5aW5nO1xuICAgIHZpZGVvLnZvbHVtZSA9IHVwZGF0ZWQudm9sdW1lO1xuICAgIHZpZGVvLmxvb3AgPSB1cGRhdGVkLmxvb3A7XG4gICAgaWYgKHBheWxvYWQucG9zaXRpb24gIT09IHVuZGVmaW5lZCkgdmlkZW8ucG9zaXRpb24gPSBwYXlsb2FkLnBvc2l0aW9uO1xuXG4gICAgYWRtaW5IYXNBY3RlZCA9IHRydWU7XG4gIH0pO1xuXG4gIG9uQWRtaW5NZXNzYWdlKE1TRy5TRVRfQU5OT1VOQ0VNRU5ULCAocGF5bG9hZCwgX3NlbmRlcikgPT4ge1xuICAgIGF1dGhvcml0YXRpdmVBbm5vdW5jZW1lbnQgPSB7XG4gICAgICB0ZXh0OiBwYXlsb2FkLnRleHQsXG4gICAgICBhdXRob3I6IHBheWxvYWQuYXV0aG9yLFxuICAgICAgaWQ6IHBheWxvYWQuaWQsXG4gICAgfTtcbiAgICBjb25zdCB0YSA9IFRleHRBbm5vdW5jZW1lbnRzLmdldE11dGFibGVPck51bGwoYWRtaW5Ub29sa2l0VWlFbnRpdHkpO1xuICAgIGlmICghdGEpIHJldHVybjtcbiAgICB0YS50ZXh0ID0gcGF5bG9hZC50ZXh0O1xuICAgIHRhLmF1dGhvciA9IHBheWxvYWQuYXV0aG9yO1xuICAgIHRhLmlkID0gcGF5bG9hZC5pZDtcbiAgICBhZG1pbkhhc0FjdGVkID0gdHJ1ZTtcbiAgfSk7XG5cbiAgb25BZG1pbk1lc3NhZ2UoTVNHLkNMRUFSX0FOTk9VTkNFTUVOVCwgKF9wYXlsb2FkLCBfc2VuZGVyKSA9PiB7XG4gICAgYXV0aG9yaXRhdGl2ZUFubm91bmNlbWVudCA9IHsgdGV4dDogJycsIGF1dGhvcjogJycsIGlkOiAnJyB9O1xuICAgIGNvbnN0IHRhID0gVGV4dEFubm91bmNlbWVudHMuZ2V0TXV0YWJsZU9yTnVsbChhZG1pblRvb2xraXRVaUVudGl0eSk7XG4gICAgaWYgKCF0YSkgcmV0dXJuO1xuICAgIHRhLnRleHQgPSAnJztcbiAgICB0YS5hdXRob3IgPSAnJztcbiAgICB0YS5pZCA9ICcnO1xuICAgIGFkbWluSGFzQWN0ZWQgPSB0cnVlO1xuICB9KTtcblxuICAvLyDilIDilIAgNC4gU3RhdGUgc3luYyBmb3IgbGF0ZSBqb2luZXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIGZ1bmN0aW9uIGJyb2FkY2FzdEN1cnJlbnRTdGF0ZSgpIHtcbiAgICBjb25zdCB2aWRlbzogU3luY1N0YXRlUGF5bG9hZFsndmlkZW8nXSA9IFtdO1xuICAgIGZvciAoY29uc3QgdnAgb2YgZ2V0VmlkZW9QbGF5ZXJzKGVuZ2luZSkpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IHZwLmVudGl0eSBhcyBFbnRpdHk7XG4gICAgICBjb25zdCBzY3JlZW4gPSBWaWRlb1NjcmVlbi5nZXRPck51bGwoZW50aXR5KTtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBWaWRlb1BsYXllci5nZXRPck51bGwoZW50aXR5KTtcbiAgICAgIGlmICghY3VycmVudCkgY29udGludWU7XG4gICAgICBpZiAoY3VycmVudC5zcmMgIT09IChzY3JlZW4/LmRlZmF1bHRVUkwgfHwgJycpKSB7XG4gICAgICAgIHZpZGVvLnB1c2goeyBlbnRpdHk6IGVudGl0eSBhcyBudW1iZXIsIC4uLmN1cnJlbnQgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdGEgPSBUZXh0QW5ub3VuY2VtZW50cy5nZXRPck51bGwoYWRtaW5Ub29sa2l0VWlFbnRpdHkpO1xuICAgIGNvbnN0IGFubm91bmNlbWVudCA9IHRhPy5pZCA/IHsgdGV4dDogdGEudGV4dCwgYXV0aG9yOiB0YS5hdXRob3IgPz8gJycsIGlkOiB0YS5pZCB9IDogbnVsbDtcblxuICAgIGlmICh2aWRlby5sZW5ndGggPT09IDAgJiYgIWFubm91bmNlbWVudCkgcmV0dXJuO1xuICAgIGVtaXRNZXNzYWdlKE1TRy5TWU5DX1NUQVRFLCB7IHZpZGVvLCBhbm5vdW5jZW1lbnQgfSk7XG4gIH1cblxuICBvbkFkbWluTWVzc2FnZShNU0cuU1lOQ19TVEFURSwgKHBheWxvYWQ6IFN5bmNTdGF0ZVBheWxvYWQsIHNlbmRlcikgPT4ge1xuICAgIC8vIE9ubHkgYSByZXBseSB0aGF0IGNhcnJpZXMgdmlkZW8gc3RhdGUgc3RvcHMgdGhlIGxhdGUtam9pbmVyIHJldHJ5IChiZWxvdykuXG4gICAgLy8gQW4gYW5ub3VuY2VtZW50LW9ubHkgU1lOQ19TVEFURSAodmlkZW86IFtdKSBpcyBhIHZhbGlkIHJlcGx5IGJ1dCBkb2Vzbid0XG4gICAgLy8gZGVsaXZlciB0aGUgdmlkZW8gc3JjIHRoZSByZXZlcnQgc3lzdGVtIHdvdWxkIG90aGVyd2lzZSBjbG9iYmVyLCBzbyBpdCBtdXN0XG4gICAgLy8gbm90IGNhbmNlbCB0aGUgcmV0cnkg4oCUIHNhbWUgcmVhc29uaW5nIGFzIG5vdCBrZXlpbmcgb24gYWRtaW5IYXNBY3RlZC5cbiAgICBpZiAoc2VuZGVyICE9PSAnc2VsZicgJiYgcGF5bG9hZC52aWRlby5sZW5ndGggPiAwKSByZWNlaXZlZFJlbW90ZVN0YXRlID0gdHJ1ZTtcbiAgICBmb3IgKGNvbnN0IHZzIG9mIHBheWxvYWQudmlkZW8pIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IHZzLmVudGl0eSBhcyBFbnRpdHk7XG4gICAgICBhdXRob3JpdGF0aXZlVmlkZW8uc2V0KGVudGl0eSwge1xuICAgICAgICBzcmM6IHZzLnNyYyxcbiAgICAgICAgcGxheWluZzogdnMucGxheWluZyxcbiAgICAgICAgdm9sdW1lOiB2cy52b2x1bWUsXG4gICAgICAgIGxvb3A6IHZzLmxvb3AsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHZpZGVvID0gVmlkZW9QbGF5ZXIuZ2V0TXV0YWJsZU9yTnVsbChlbnRpdHkpO1xuICAgICAgaWYgKCF2aWRlbykgY29udGludWU7XG4gICAgICB2aWRlby5zcmMgPSB2cy5zcmM7XG4gICAgICBpZiAodnMucGxheWluZyAhPT0gdW5kZWZpbmVkKSB2aWRlby5wbGF5aW5nID0gdnMucGxheWluZztcbiAgICAgIGlmICh2cy52b2x1bWUgIT09IHVuZGVmaW5lZCkgdmlkZW8udm9sdW1lID0gdnMudm9sdW1lO1xuICAgICAgaWYgKHZzLmxvb3AgIT09IHVuZGVmaW5lZCkgdmlkZW8ubG9vcCA9IHZzLmxvb3A7XG4gICAgfVxuXG4gICAgaWYgKHBheWxvYWQuYW5ub3VuY2VtZW50Py5pZCkge1xuICAgICAgYXV0aG9yaXRhdGl2ZUFubm91bmNlbWVudCA9IHsgLi4ucGF5bG9hZC5hbm5vdW5jZW1lbnQgfTtcbiAgICAgIGNvbnN0IHRhID0gVGV4dEFubm91bmNlbWVudHMuZ2V0TXV0YWJsZU9yTnVsbChhZG1pblRvb2xraXRVaUVudGl0eSk7XG4gICAgICBpZiAodGEpIHtcbiAgICAgICAgdGEudGV4dCA9IHBheWxvYWQuYW5ub3VuY2VtZW50LnRleHQ7XG4gICAgICAgIHRhLmF1dGhvciA9IHBheWxvYWQuYW5ub3VuY2VtZW50LmF1dGhvcjtcbiAgICAgICAgdGEuaWQgPSBwYXlsb2FkLmFubm91bmNlbWVudC5pZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhZG1pbkhhc0FjdGVkID0gdHJ1ZTtcbiAgfSk7XG5cbiAgb25NZXNzYWdlKE1TRy5SRVFVRVNUX1NUQVRFLCAoX3BheWxvYWQsIF9zZW5kZXIpID0+IHtcbiAgICBpZiAoYWRtaW5IYXNBY3RlZCkgYnJvYWRjYXN0Q3VycmVudFN0YXRlKCk7XG4gIH0pO1xuXG4gIHBsYXllcnNIZWxwZXI/Lm9uRW50ZXJTY2VuZSgoKSA9PiB7XG4gICAgaWYgKGFkbWluSGFzQWN0ZWQpIGJyb2FkY2FzdEN1cnJlbnRTdGF0ZSgpO1xuICB9KTtcblxuICAvLyBXaGVuIGFuIGFkbWluIHNpZ25hbHMgdGhhdCB0aGUgYWRtaW4gbGlzdCBjaGFuZ2VkLCBhbGwgcGFydGljaXBhbnRzIHJlZmV0Y2hcbiAgb25BZG1pbk1lc3NhZ2UoTVNHLlNZTkNfQURNSU5TLCAoX3BheWxvYWQsIF9zZW5kZXIpID0+IHtcbiAgICBvblJlZmV0Y2hBZG1pbnM/LigpO1xuICB9KTtcblxuICAvLyBSZXF1ZXN0IHN0YXRlIGZyb20gYW55IGV4aXN0aW5nIHBhcnRpY2lwYW50IHRoYXQgaGFzIGFkbWluIHN0YXRlLlxuICAvL1xuICAvLyBSRVFVRVNUX1NUQVRFIGFuZCBpdHMgU1lOQ19TVEFURSByZXBseSBhcmUgYmVzdC1lZmZvcnQgY29tbXMgYW5kIGNhbiBiZVxuICAvLyBkcm9wcGVkLiBBIGxvc3QgaGFuZHNoYWtlIGlzIE5PVCBiZW5pZ246IHRoZSByZXZlcnQgc3lzdGVtIGJlbG93IHBpbnMgZXZlcnlcbiAgLy8gc2NyZWVuIHRvIGRlZmF1bHRVUkwsIHNvIGEgbGF0ZSBqb2luZXIgdGhhdCBtaXNzZXMgdGhlIHJlcGx5IHN0YXlzIHN0dWNrIG9uXG4gIC8vIHRoZSBkZWZhdWx0IHZpZGVvIGV2ZW4gdGhvdWdoIHRoZSByZWFsIGNhc3Qgc3JjIGFycml2ZXMgb3ZlciBDUkRUIChpdCBnZXRzXG4gIC8vIHJldmVydGVkIGV2ZXJ5IGZyYW1lKS4gU28gcmV0cnkgdW50aWwgYSByZW1vdGUgU1lOQ19TVEFURSByZXBseSBsYW5kcywgYm91bmRlZFxuICAvLyBieSBNQVhfUkVRVUVTVF9BVFRFTVBUUy4gVGhpcyBvbmx5IHJlY292ZXJzIHN0YXRlIHRoYXQgcHJlZGF0ZXMgdGhlIGpvaW4g4oCUXG4gIC8vIGxpdmUgY2hhbmdlcyBhZnRlciBqb2luaW5nIGFycml2ZSB2aWEgU0VUX1ZJREVPIHJlZ2FyZGxlc3MuIFRoZSBzdG9wIHNpZ25hbCBpc1xuICAvLyByZWNlaXZlZFJlbW90ZVN0YXRlIHNwZWNpZmljYWxseSAoYSBTWU5DX1NUQVRFIGZyb20gYW5vdGhlciBwYXJ0aWNpcGFudCB0aGF0XG4gIC8vIGNhcnJpZXMgdmlkZW8gc3RhdGUpLCBub3QgYWRtaW5IYXNBY3RlZCBhbmQgbm90IGFuIGFubm91bmNlbWVudC1vbmx5IHJlcGx5OlxuICAvLyBlaXRoZXIgd291bGQgc3RvcCB0aGUgcmV0cnkgd2l0aG91dCBldmVyIGRlbGl2ZXJpbmcgdGhlIHZpZGVvIHN0YXRlIHdlJ3JlXG4gIC8vIHN0aWxsIG1pc3NpbmcuXG4gIGNvbnN0IFJFUVVFU1RfUkVUUllfSU5URVJWQUxfTVMgPSAxMDAwO1xuICBjb25zdCBNQVhfUkVRVUVTVF9BVFRFTVBUUyA9IDEwO1xuICBsZXQgcmVxdWVzdEF0dGVtcHRzID0gMTtcblxuICBlbWl0TWVzc2FnZShNU0cuUkVRVUVTVF9TVEFURSwge30pO1xuXG4gIGNvbnN0IHJlcXVlc3RTdGF0ZVJldHJ5ID0gc2V0SW50ZXJ2YWwoXG4gICAgZW5naW5lLFxuICAgICgpID0+IHtcbiAgICAgIGlmIChyZWNlaXZlZFJlbW90ZVN0YXRlIHx8IHJlcXVlc3RBdHRlbXB0cyA+PSBNQVhfUkVRVUVTVF9BVFRFTVBUUykge1xuICAgICAgICBjbGVhckludGVydmFsKGVuZ2luZSwgcmVxdWVzdFN0YXRlUmV0cnkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXF1ZXN0QXR0ZW1wdHMgKz0gMTtcbiAgICAgIGVtaXRNZXNzYWdlKE1TRy5SRVFVRVNUX1NUQVRFLCB7fSk7XG4gICAgfSxcbiAgICBSRVFVRVNUX1JFVFJZX0lOVEVSVkFMX01TLFxuICApO1xuXG4gIC8vIOKUgOKUgCA1LiBSZXZlcnQgc3lzdGVtIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAvL1xuICAvLyBBdHRhY2tlciBDUkRUIHdyaXRlcyBieXBhc3MgU3luY0NvbXBvbmVudHMgKGluamVjdGVkIGRpcmVjdGx5IHZpYSBMaXZlS2l0KVxuICAvLyBidXQgYXJlIGNhdWdodCBoZXJlLiBBZG1pbiBjb21tYW5kcyB1cGRhdGUgYXV0aG9yaXRhdGl2ZVZpZGVvL0Fubm91bmNlbWVudFxuICAvLyBiZWZvcmUgbXV0YXRpbmcgY29tcG9uZW50cywgc28gbGVnaXRpbWF0ZSBjaGFuZ2VzIGFyZSBuZXZlciByZXZlcnRlZC5cblxuICBlbmdpbmUuYWRkU3lzdGVtKCgpID0+IHtcbiAgICBmb3IgKGNvbnN0IFtlbnRpdHksIGF1dGhTdGF0ZV0gb2YgYXV0aG9yaXRhdGl2ZVZpZGVvKSB7XG4gICAgICBjb25zdCB2cCA9IFZpZGVvUGxheWVyLmdldE9yTnVsbChlbnRpdHkpO1xuICAgICAgaWYgKCF2cCkgY29udGludWU7XG4gICAgICBpZiAodnAuc3JjICE9PSBhdXRoU3RhdGUuc3JjKSB7XG4gICAgICAgIGNvbnN0IG11dCA9IFZpZGVvUGxheWVyLmdldE11dGFibGUoZW50aXR5KTtcbiAgICAgICAgbXV0LnNyYyA9IGF1dGhTdGF0ZS5zcmM7XG4gICAgICAgIG11dC5wbGF5aW5nID0gYXV0aFN0YXRlLnBsYXlpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGF1dGhvcml0YXRpdmVBbm5vdW5jZW1lbnQpIHtcbiAgICAgIGNvbnN0IHRhID0gVGV4dEFubm91bmNlbWVudHMuZ2V0T3JOdWxsKGFkbWluVG9vbGtpdFVpRW50aXR5KTtcbiAgICAgIGlmICh0YSAmJiBhdXRob3JpdGF0aXZlQW5ub3VuY2VtZW50LmlkICYmIHRhLmlkICE9PSBhdXRob3JpdGF0aXZlQW5ub3VuY2VtZW50LmlkKSB7XG4gICAgICAgIGNvbnN0IG11dCA9IFRleHRBbm5vdW5jZW1lbnRzLmdldE11dGFibGUoYWRtaW5Ub29sa2l0VWlFbnRpdHkpO1xuICAgICAgICBtdXQudGV4dCA9IGF1dGhvcml0YXRpdmVBbm5vdW5jZW1lbnQudGV4dDtcbiAgICAgICAgbXV0LmF1dGhvciA9IGF1dGhvcml0YXRpdmVBbm5vdW5jZW1lbnQuYXV0aG9yO1xuICAgICAgICBtdXQuaWQgPSBhdXRob3JpdGF0aXZlQW5ub3VuY2VtZW50LmlkO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLy8g4pSA4pSAIEluc3RhbmNlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIGluc3RhbmNlID0ge1xuICAgIGVtaXRTZXRWaWRlbyhlbnRpdHk6IEVudGl0eSwgcHJvcHM6IFBhcnRpYWw8UEJWaWRlb1BsYXllcj4pIHtcbiAgICAgIGVtaXRNZXNzYWdlKE1TRy5TRVRfVklERU8sIHsgZW50aXR5LCAuLi5wcm9wcyB9IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICB9LFxuXG4gICAgZW1pdFNldEFubm91bmNlbWVudCh0ZXh0OiBzdHJpbmcsIGF1dGhvcj86IHN0cmluZywgaWQ/OiBzdHJpbmcpIHtcbiAgICAgIGVtaXRNZXNzYWdlKE1TRy5TRVRfQU5OT1VOQ0VNRU5ULCB7XG4gICAgICAgIHRleHQsXG4gICAgICAgIGF1dGhvcjogYXV0aG9yID8/ICcnLFxuICAgICAgICBpZDogaWQgPz8gJycsXG4gICAgICB9KTtcbiAgICB9LFxuXG4gICAgZW1pdENsZWFyQW5ub3VuY2VtZW50KCkge1xuICAgICAgZW1pdE1lc3NhZ2UoTVNHLkNMRUFSX0FOTk9VTkNFTUVOVCwge30pO1xuICAgIH0sXG5cbiAgICBlbWl0U3luY0FkbWlucygpIHtcbiAgICAgIGVtaXRNZXNzYWdlKE1TRy5TWU5DX0FETUlOUywge30pO1xuICAgIH0sXG5cbiAgICB1cGRhdGVBZG1pbkxpc3QoYWRtaW5zOiBTY2VuZUFkbWluW10pIHtcbiAgICAgIHNjZW5lQWRtaW5zID0gYWRtaW5zO1xuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuIl19
|
|
@@ -2,9 +2,6 @@ import { Color4 } from '@dcl/sdk/math';
|
|
|
2
2
|
import { type ReactBasedUiSystem } from '@dcl/react-ecs';
|
|
3
3
|
import { type IEngine, type PointerEventsSystem } from '@dcl/ecs';
|
|
4
4
|
import { type IPlayersHelper, type ISDKHelpers } from '../definitions';
|
|
5
|
-
import { type State } from './types';
|
|
6
|
-
export declare const nextTickFunctions: (() => void)[];
|
|
7
|
-
export declare const state: State;
|
|
8
5
|
export declare const containerBackgroundColor: Color4.MutableColor4;
|
|
9
6
|
export declare function fetchSceneAdmins(): Promise<void>;
|
|
10
7
|
export declare function fetchAndSyncSceneAdmins(): Promise<void>;
|