@cloudflare/realtimekit-angular-ui 1.0.2-staging.1 → 1.0.2-staging.2

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.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmbGFyZS1yZWFsdGltZWtpdC1hbmd1bGFyLXVpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb3VkZmxhcmUtcmVhbHRpbWVraXQtYW5ndWxhci11aS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,31 @@
1
+ import { APP_INITIALIZER, NgModule } from '@angular/core';
2
+ import { DIRECTIVES } from './stencil-generated';
3
+ import { defineCustomElements } from '@cloudflare/realtimekit-ui/loader';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./stencil-generated/components";
6
+ export class ComponentLibraryModule {
7
+ }
8
+ ComponentLibraryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ComponentLibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ ComponentLibraryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ComponentLibraryModule, declarations: [i1.RtkAi, i1.RtkAiToggle, i1.RtkAiTranscriptions, i1.RtkAudioGrid, i1.RtkAudioTile, i1.RtkAudioVisualizer, i1.RtkAvatar, i1.RtkBreakoutRoomManager, i1.RtkBreakoutRoomParticipants, i1.RtkBreakoutRoomsManager, i1.RtkBreakoutRoomsToggle, i1.RtkBroadcastMessageModal, i1.RtkButton, i1.RtkCameraSelector, i1.RtkCameraToggle, i1.RtkCaptionToggle, i1.RtkChannelCreator, i1.RtkChannelDetails, i1.RtkChannelHeader, i1.RtkChannelSelectorUi, i1.RtkChannelSelectorView, i1.RtkChat, i1.RtkChatComposerUi, i1.RtkChatComposerView, i1.RtkChatMessage, i1.RtkChatMessagesUi, i1.RtkChatMessagesUiPaginated, i1.RtkChatSearchResults, i1.RtkChatSelectorUi, i1.RtkChatToggle, i1.RtkClock, i1.RtkConfirmationModal, i1.RtkControlbar, i1.RtkControlbarButton, i1.RtkCounter, i1.RtkDebugger, i1.RtkDebuggerAudio, i1.RtkDebuggerScreenshare, i1.RtkDebuggerSystem, i1.RtkDebuggerToggle, i1.RtkDebuggerVideo, i1.RtkDialog, i1.RtkDialogManager, i1.RtkDraftAttachmentView, i1.RtkEmojiPicker, i1.RtkEmojiPickerButton, i1.RtkEndedScreen, i1.RtkFileDropzone, i1.RtkFileMessage, i1.RtkFileMessageView, i1.RtkFilePickerButton, i1.RtkFullscreenToggle, i1.RtkGrid, i1.RtkGridPagination, i1.RtkHeader, i1.RtkIcon, i1.RtkIdleScreen, i1.RtkImageMessage, i1.RtkImageMessageView, i1.RtkImageViewer, i1.RtkInformationTooltip, i1.RtkJoinStage, i1.RtkLeaveButton, i1.RtkLeaveMeeting, i1.RtkLivestreamIndicator, i1.RtkLivestreamPlayer, i1.RtkLivestreamToggle, i1.RtkLogo, i1.RtkMarkdownView, i1.RtkMeeting, i1.RtkMeetingTitle, i1.RtkMenu, i1.RtkMenuItem, i1.RtkMenuList, i1.RtkMessageListView, i1.RtkMessageView, i1.RtkMicToggle, i1.RtkMicrophoneSelector, i1.RtkMixedGrid, i1.RtkMoreToggle, i1.RtkMuteAllButton, i1.RtkMuteAllConfirmation, i1.RtkNameTag, i1.RtkNetworkIndicator, i1.RtkNotification, i1.RtkNotifications, i1.RtkOverlayModal, i1.RtkPaginatedList, i1.RtkParticipant, i1.RtkParticipantCount, i1.RtkParticipantSetup, i1.RtkParticipantTile, i1.RtkParticipants, i1.RtkParticipantsAudio, i1.RtkParticipantsStageList, i1.RtkParticipantsStageQueue, i1.RtkParticipantsToggle, i1.RtkParticipantsViewerList, i1.RtkParticipantsWaitingList, i1.RtkPermissionsMessage, i1.RtkPipToggle, i1.RtkPluginMain, i1.RtkPlugins, i1.RtkPluginsToggle, i1.RtkPoll, i1.RtkPollForm, i1.RtkPolls, i1.RtkPollsToggle, i1.RtkRecordingIndicator, i1.RtkRecordingToggle, i1.RtkScreenShareToggle, i1.RtkScreenshareView, i1.RtkSettings, i1.RtkSettingsAudio, i1.RtkSettingsToggle, i1.RtkSettingsVideo, i1.RtkSetupScreen, i1.RtkSidebar, i1.RtkSidebarUi, i1.RtkSimpleGrid, i1.RtkSpeakerSelector, i1.RtkSpinner, i1.RtkSpotlightGrid, i1.RtkSpotlightIndicator, i1.RtkStage, i1.RtkStageToggle, i1.RtkSwitch, i1.RtkTabBar, i1.RtkTextComposerView, i1.RtkTextMessage, i1.RtkTextMessageView, i1.RtkTooltip, i1.RtkTranscript, i1.RtkTranscripts, i1.RtkUiProvider, i1.RtkViewerCount, i1.RtkVirtualizedParticipantList, i1.RtkWaitingScreen], exports: [i1.RtkAi, i1.RtkAiToggle, i1.RtkAiTranscriptions, i1.RtkAudioGrid, i1.RtkAudioTile, i1.RtkAudioVisualizer, i1.RtkAvatar, i1.RtkBreakoutRoomManager, i1.RtkBreakoutRoomParticipants, i1.RtkBreakoutRoomsManager, i1.RtkBreakoutRoomsToggle, i1.RtkBroadcastMessageModal, i1.RtkButton, i1.RtkCameraSelector, i1.RtkCameraToggle, i1.RtkCaptionToggle, i1.RtkChannelCreator, i1.RtkChannelDetails, i1.RtkChannelHeader, i1.RtkChannelSelectorUi, i1.RtkChannelSelectorView, i1.RtkChat, i1.RtkChatComposerUi, i1.RtkChatComposerView, i1.RtkChatMessage, i1.RtkChatMessagesUi, i1.RtkChatMessagesUiPaginated, i1.RtkChatSearchResults, i1.RtkChatSelectorUi, i1.RtkChatToggle, i1.RtkClock, i1.RtkConfirmationModal, i1.RtkControlbar, i1.RtkControlbarButton, i1.RtkCounter, i1.RtkDebugger, i1.RtkDebuggerAudio, i1.RtkDebuggerScreenshare, i1.RtkDebuggerSystem, i1.RtkDebuggerToggle, i1.RtkDebuggerVideo, i1.RtkDialog, i1.RtkDialogManager, i1.RtkDraftAttachmentView, i1.RtkEmojiPicker, i1.RtkEmojiPickerButton, i1.RtkEndedScreen, i1.RtkFileDropzone, i1.RtkFileMessage, i1.RtkFileMessageView, i1.RtkFilePickerButton, i1.RtkFullscreenToggle, i1.RtkGrid, i1.RtkGridPagination, i1.RtkHeader, i1.RtkIcon, i1.RtkIdleScreen, i1.RtkImageMessage, i1.RtkImageMessageView, i1.RtkImageViewer, i1.RtkInformationTooltip, i1.RtkJoinStage, i1.RtkLeaveButton, i1.RtkLeaveMeeting, i1.RtkLivestreamIndicator, i1.RtkLivestreamPlayer, i1.RtkLivestreamToggle, i1.RtkLogo, i1.RtkMarkdownView, i1.RtkMeeting, i1.RtkMeetingTitle, i1.RtkMenu, i1.RtkMenuItem, i1.RtkMenuList, i1.RtkMessageListView, i1.RtkMessageView, i1.RtkMicToggle, i1.RtkMicrophoneSelector, i1.RtkMixedGrid, i1.RtkMoreToggle, i1.RtkMuteAllButton, i1.RtkMuteAllConfirmation, i1.RtkNameTag, i1.RtkNetworkIndicator, i1.RtkNotification, i1.RtkNotifications, i1.RtkOverlayModal, i1.RtkPaginatedList, i1.RtkParticipant, i1.RtkParticipantCount, i1.RtkParticipantSetup, i1.RtkParticipantTile, i1.RtkParticipants, i1.RtkParticipantsAudio, i1.RtkParticipantsStageList, i1.RtkParticipantsStageQueue, i1.RtkParticipantsToggle, i1.RtkParticipantsViewerList, i1.RtkParticipantsWaitingList, i1.RtkPermissionsMessage, i1.RtkPipToggle, i1.RtkPluginMain, i1.RtkPlugins, i1.RtkPluginsToggle, i1.RtkPoll, i1.RtkPollForm, i1.RtkPolls, i1.RtkPollsToggle, i1.RtkRecordingIndicator, i1.RtkRecordingToggle, i1.RtkScreenShareToggle, i1.RtkScreenshareView, i1.RtkSettings, i1.RtkSettingsAudio, i1.RtkSettingsToggle, i1.RtkSettingsVideo, i1.RtkSetupScreen, i1.RtkSidebar, i1.RtkSidebarUi, i1.RtkSimpleGrid, i1.RtkSpeakerSelector, i1.RtkSpinner, i1.RtkSpotlightGrid, i1.RtkSpotlightIndicator, i1.RtkStage, i1.RtkStageToggle, i1.RtkSwitch, i1.RtkTabBar, i1.RtkTextComposerView, i1.RtkTextMessage, i1.RtkTextMessageView, i1.RtkTooltip, i1.RtkTranscript, i1.RtkTranscripts, i1.RtkUiProvider, i1.RtkViewerCount, i1.RtkVirtualizedParticipantList, i1.RtkWaitingScreen] });
10
+ ComponentLibraryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ComponentLibraryModule, providers: [
11
+ {
12
+ provide: APP_INITIALIZER,
13
+ useFactory: () => defineCustomElements,
14
+ multi: true,
15
+ },
16
+ ] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ComponentLibraryModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ declarations: [...DIRECTIVES],
21
+ exports: [...DIRECTIVES],
22
+ providers: [
23
+ {
24
+ provide: APP_INITIALIZER,
25
+ useFactory: () => defineCustomElements,
26
+ multi: true,
27
+ },
28
+ ],
29
+ }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBYXpFLE1BQU0sT0FBTyxzQkFBc0I7O29IQUF0QixzQkFBc0I7cUhBQXRCLHNCQUFzQjtxSEFBdEIsc0JBQXNCLGFBUnRCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CO1lBQ3RDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjs0RkFFVSxzQkFBc0I7a0JBWGxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBb0I7NEJBQ3RDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRElSRUNUSVZFUyB9IGZyb20gJy4vc3RlbmNpbC1nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudHMgfSBmcm9tICdAY2xvdWRmbGFyZS9yZWFsdGltZWtpdC11aS9sb2FkZXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsuLi5ESVJFQ1RJVkVTXSxcbiAgZXhwb3J0czogWy4uLkRJUkVDVElWRVNdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiBkZWZpbmVDdXN0b21FbGVtZW50cyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudExpYnJhcnlNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,59 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ import { fromEvent } from 'rxjs';
4
+ export const proxyInputs = (Cmp, inputs) => {
5
+ const Prototype = Cmp.prototype;
6
+ inputs.forEach((item) => {
7
+ Object.defineProperty(Prototype, item, {
8
+ get() {
9
+ return this.el[item];
10
+ },
11
+ set(val) {
12
+ this.z.runOutsideAngular(() => (this.el[item] = val));
13
+ },
14
+ /**
15
+ * In the event that proxyInputs is called
16
+ * multiple times re-defining these inputs
17
+ * will cause an error to be thrown. As a result
18
+ * we set configurable: true to indicate these
19
+ * properties can be changed.
20
+ */
21
+ configurable: true,
22
+ });
23
+ });
24
+ };
25
+ export const proxyMethods = (Cmp, methods) => {
26
+ const Prototype = Cmp.prototype;
27
+ methods.forEach((methodName) => {
28
+ Prototype[methodName] = function () {
29
+ const args = arguments;
30
+ return this.z.runOutsideAngular(() => this.el[methodName].apply(this.el, args));
31
+ };
32
+ });
33
+ };
34
+ export const proxyOutputs = (instance, el, events) => {
35
+ events.forEach((eventName) => (instance[eventName] = fromEvent(el, eventName)));
36
+ };
37
+ export const defineCustomElement = (tagName, customElement) => {
38
+ if (customElement !== undefined && typeof customElements !== 'undefined' && !customElements.get(tagName)) {
39
+ customElements.define(tagName, customElement);
40
+ }
41
+ };
42
+ // tslint:disable-next-line: only-arrow-functions
43
+ export function ProxyCmp(opts) {
44
+ const decorator = function (cls) {
45
+ const { defineCustomElementFn, inputs, methods } = opts;
46
+ if (defineCustomElementFn !== undefined) {
47
+ defineCustomElementFn();
48
+ }
49
+ if (inputs) {
50
+ proxyInputs(cls, inputs);
51
+ }
52
+ if (methods) {
53
+ proxyMethods(cls, methods);
54
+ }
55
+ return cls;
56
+ };
57
+ return decorator;
58
+ }
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3N0ZW5jaWwtZ2VuZXJhdGVkL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBUSxFQUFFLE1BQWdCLEVBQUUsRUFBRTtJQUN4RCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUN0QixNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDckMsR0FBRztnQkFDRCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUNELEdBQUcsQ0FBQyxHQUFRO2dCQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEQsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBUSxFQUFFLE9BQWlCLEVBQUUsRUFBRTtJQUMxRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUM3QixTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUc7WUFDdEIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFhLEVBQUUsRUFBTyxFQUFFLE1BQWdCLEVBQUUsRUFBRTtJQUN2RSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLE9BQWUsRUFBRSxhQUFrQixFQUFFLEVBQUU7SUFDekUsSUFBSSxhQUFhLEtBQUssU0FBUyxJQUFJLE9BQU8sY0FBYyxLQUFLLFdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDeEcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDL0M7QUFDSCxDQUFDLENBQUM7QUFFRixpREFBaUQ7QUFDakQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUF5RTtJQUNoRyxNQUFNLFNBQVMsR0FBRyxVQUFVLEdBQVE7UUFDbEMsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFeEQsSUFBSSxxQkFBcUIsS0FBSyxTQUFTLEVBQUU7WUFDdkMscUJBQXFCLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsV0FBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMxQjtRQUNELElBQUksT0FBTyxFQUFFO1lBQ1gsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG4vKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCBwcm94eUlucHV0cyA9IChDbXA6IGFueSwgaW5wdXRzOiBzdHJpbmdbXSkgPT4ge1xuICBjb25zdCBQcm90b3R5cGUgPSBDbXAucHJvdG90eXBlO1xuICBpbnB1dHMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQcm90b3R5cGUsIGl0ZW0sIHtcbiAgICAgIGdldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxbaXRlbV07XG4gICAgICB9LFxuICAgICAgc2V0KHZhbDogYW55KSB7XG4gICAgICAgIHRoaXMuei5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiAodGhpcy5lbFtpdGVtXSA9IHZhbCkpO1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICAgICogSW4gdGhlIGV2ZW50IHRoYXQgcHJveHlJbnB1dHMgaXMgY2FsbGVkXG4gICAgICAgKiBtdWx0aXBsZSB0aW1lcyByZS1kZWZpbmluZyB0aGVzZSBpbnB1dHNcbiAgICAgICAqIHdpbGwgY2F1c2UgYW4gZXJyb3IgdG8gYmUgdGhyb3duLiBBcyBhIHJlc3VsdFxuICAgICAgICogd2Ugc2V0IGNvbmZpZ3VyYWJsZTogdHJ1ZSB0byBpbmRpY2F0ZSB0aGVzZVxuICAgICAgICogcHJvcGVydGllcyBjYW4gYmUgY2hhbmdlZC5cbiAgICAgICAqL1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcm94eU1ldGhvZHMgPSAoQ21wOiBhbnksIG1ldGhvZHM6IHN0cmluZ1tdKSA9PiB7XG4gIGNvbnN0IFByb3RvdHlwZSA9IENtcC5wcm90b3R5cGU7XG4gIG1ldGhvZHMuZm9yRWFjaCgobWV0aG9kTmFtZSkgPT4ge1xuICAgIFByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICByZXR1cm4gdGhpcy56LnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuZWxbbWV0aG9kTmFtZV0uYXBwbHkodGhpcy5lbCwgYXJncykpO1xuICAgIH07XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHByb3h5T3V0cHV0cyA9IChpbnN0YW5jZTogYW55LCBlbDogYW55LCBldmVudHM6IHN0cmluZ1tdKSA9PiB7XG4gIGV2ZW50cy5mb3JFYWNoKChldmVudE5hbWUpID0+IChpbnN0YW5jZVtldmVudE5hbWVdID0gZnJvbUV2ZW50KGVsLCBldmVudE5hbWUpKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQ3VzdG9tRWxlbWVudCA9ICh0YWdOYW1lOiBzdHJpbmcsIGN1c3RvbUVsZW1lbnQ6IGFueSkgPT4ge1xuICBpZiAoY3VzdG9tRWxlbWVudCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBjdXN0b21FbGVtZW50cyAhPT0gJ3VuZGVmaW5lZCcgJiYgIWN1c3RvbUVsZW1lbnRzLmdldCh0YWdOYW1lKSkge1xuICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSh0YWdOYW1lLCBjdXN0b21FbGVtZW50KTtcbiAgfVxufTtcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBvbmx5LWFycm93LWZ1bmN0aW9uc1xuZXhwb3J0IGZ1bmN0aW9uIFByb3h5Q21wKG9wdHM6IHsgZGVmaW5lQ3VzdG9tRWxlbWVudEZuPzogKCkgPT4gdm9pZDsgaW5wdXRzPzogYW55OyBtZXRob2RzPzogYW55IH0pIHtcbiAgY29uc3QgZGVjb3JhdG9yID0gZnVuY3Rpb24gKGNsczogYW55KSB7XG4gICAgY29uc3QgeyBkZWZpbmVDdXN0b21FbGVtZW50Rm4sIGlucHV0cywgbWV0aG9kcyB9ID0gb3B0cztcblxuICAgIGlmIChkZWZpbmVDdXN0b21FbGVtZW50Rm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuKCk7XG4gICAgfVxuXG4gICAgaWYgKGlucHV0cykge1xuICAgICAgcHJveHlJbnB1dHMoY2xzLCBpbnB1dHMpO1xuICAgIH1cbiAgICBpZiAobWV0aG9kcykge1xuICAgICAgcHJveHlNZXRob2RzKGNscywgbWV0aG9kcyk7XG4gICAgfVxuICAgIHJldHVybiBjbHM7XG4gIH07XG4gIHJldHVybiBkZWNvcmF0b3I7XG59XG4iXX0=