@cometchat/chat-uikit-angular 4.0.1 → 4.1.0
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/AI/AIAssistBot/AIAssistBot.d.ts +7 -0
- package/AI/AIAssistBot/AIAssistBotDecorator.d.ts +11 -0
- package/AI/AIConversationStarter/AIConversationStarter.d.ts +2 -2
- package/AI/AIConversationStarter/AIConversationStarterDecorator.d.ts +3 -0
- package/AI/AIConversationSummary/AIConversationSummary.d.ts +7 -0
- package/AI/AIConversationSummary/AIConversationSummaryDecorator.d.ts +10 -0
- package/AI/AISmartReplies/AISmartReplies.d.ts +2 -2
- package/AI/AISmartReplies/AISmartRepliesDecorator.d.ts +3 -0
- package/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.d.ts +119 -0
- package/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.d.ts +14 -0
- package/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.d.ts +111 -0
- package/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.d.ts +10 -0
- package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.d.ts +76 -0
- package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.d.ts +10 -0
- package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.d.ts +90 -0
- package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.d.ts +10 -0
- package/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.d.ts +133 -0
- package/Calls/CometChatCallLogs/cometchat-call-logs.module.d.ts +12 -0
- package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.d.ts +54 -0
- package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.d.ts +12 -0
- package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +18 -7
- package/CometChatList/cometchat-list.component.d.ts +12 -9
- package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +65 -29
- package/CometChatMessageComposer/cometchat-message-composer.module.d.ts +3 -3
- package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +7 -6
- package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +6 -4
- package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +96 -55
- package/CometChatMessageList/cometchat-message-list.module.d.ts +1 -1
- package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +19 -16
- package/CometChatMessages/cometchat-messages.module.d.ts +3 -2
- package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +8 -5
- package/Shared/CometChatUIkit/CometChatUIKit.d.ts +13 -3
- package/Shared/Framework/AIExtensionDataSource.d.ts +5 -0
- package/Shared/Framework/DataSource.d.ts +3 -1
- package/Shared/Framework/DataSourceDecorator.d.ts +3 -1
- package/Shared/Utils/CallDetailUtils.d.ts +8 -0
- package/Shared/Utils/CallLogUtils.d.ts +8 -0
- package/Shared/Utils/MessageUtils.d.ts +2 -1
- package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.d.ts +71 -0
- package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.d.ts +11 -0
- package/assets/InfoIcon.svg +13 -0
- package/assets/greaterThanIcon.svg +3 -0
- package/assets/incomingAudioCallIconUrl.svg +5 -0
- package/assets/incomingVideoCallIconUrl.svg +6 -0
- package/assets/missedAudioCallIconUrl.svg +5 -0
- package/assets/missedVideoCallIconUrl.svg +6 -0
- package/assets/outgoingAudioCallIconUrl.svg +5 -0
- package/assets/outgoingVideoCallIconUrl.svg +6 -0
- package/esm2020/AI/AIAssistBot/AIAssistBot.mjs +21 -0
- package/esm2020/AI/AIAssistBot/AIAssistBotDecorator.mjs +68 -0
- package/esm2020/AI/AIConversationStarter/AIConversationStarter.mjs +7 -4
- package/esm2020/AI/AIConversationStarter/AIConversationStarterDecorator.mjs +22 -1
- package/esm2020/AI/AIConversationSummary/AIConversationSummary.mjs +21 -0
- package/esm2020/AI/AIConversationSummary/AIConversationSummaryDecorator.mjs +32 -0
- package/esm2020/AI/AISmartReplies/AISmartReplies.mjs +7 -4
- package/esm2020/AI/AISmartReplies/AISmartRepliesDecorator.mjs +22 -1
- package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +3 -3
- package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.mjs +351 -0
- package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.mjs +47 -0
- package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.mjs +352 -0
- package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.mjs +21 -0
- package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.mjs +189 -0
- package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.mjs +21 -0
- package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.mjs +246 -0
- package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.mjs +21 -0
- package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.mjs +585 -0
- package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs.module.mjs +36 -0
- package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.mjs +193 -0
- package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.mjs +39 -0
- package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +1 -1
- package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +72 -46
- package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +3 -3
- package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +1 -1
- package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +1 -1
- package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +3 -3
- package/esm2020/CometChatList/cometchat-list.component.mjs +44 -28
- package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +312 -115
- package/esm2020/CometChatMessageComposer/cometchat-message-composer.module.mjs +7 -14
- package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +15 -17
- package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +19 -21
- package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +888 -300
- package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +5 -5
- package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +72 -51
- package/esm2020/CometChatMessages/cometchat-messages.module.mjs +10 -6
- package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +23 -23
- package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +1 -1
- package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +3 -3
- package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +173 -36
- package/esm2020/Shared/Framework/AIExtensionDataSource.mjs +3 -0
- package/esm2020/Shared/Framework/ChatConfigurator.mjs +2 -2
- package/esm2020/Shared/Framework/DataSource.mjs +1 -1
- package/esm2020/Shared/Framework/DataSourceDecorator.mjs +5 -2
- package/esm2020/Shared/Utils/CallDetailUtils.mjs +72 -0
- package/esm2020/Shared/Utils/CallLogUtils.mjs +122 -0
- package/esm2020/Shared/Utils/MessageUtils.mjs +31 -20
- package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.mjs +289 -0
- package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.mjs +22 -0
- package/esm2020/public-api.mjs +106 -91
- package/fesm2015/cometchat-chat-uikit-angular.mjs +4249 -817
- package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/fesm2020/cometchat-chat-uikit-angular.mjs +4271 -836
- package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
- package/package.json +6 -6
- package/public-api.d.ts +105 -90
- package/AI/AIEnabler.d.ts +0 -8
- package/AI/AIEnablerDecorator.d.ts +0 -7
- package/LICENSE.md +0 -3
- package/Shared/Views/CometChatCardView/cometchat-card-view/cometchat-card-view.component.d.ts +0 -71
- package/Shared/Views/CometChatCardView/cometchat-card-view.module.d.ts +0 -8
- package/esm2020/AI/AIEnabler.mjs +0 -70
- package/esm2020/AI/AIEnablerDecorator.mjs +0 -10
- package/esm2020/Shared/Views/CometChatCardView/cometchat-card-view/cometchat-card-view.component.mjs +0 -117
- package/esm2020/Shared/Views/CometChatCardView/cometchat-card-view.module.mjs +0 -23
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ChatConfigurator } from "../Framework/ChatConfigurator";
|
|
3
|
-
import { CometChatLocalize, CometChatMessageEvents, MessageStatus } from "@cometchat/uikit-resources";
|
|
1
|
+
import { ChatSdkEventInitializer, CometChatLocalize, CometChatMessageEvents, MessageStatus, } from "@cometchat/uikit-resources";
|
|
4
2
|
import { CallingExtension } from "../../Calls/CallingExtension";
|
|
3
|
+
import { ChatConfigurator } from "../Framework/ChatConfigurator";
|
|
5
4
|
import { CollaborativeDocumentExtension } from "../../Extensions/CollaborativeDocument/CollaborativeDocumentExtension";
|
|
6
5
|
import { CollaborativeWhiteBoardExtension } from "../../Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension";
|
|
6
|
+
import { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
7
7
|
import { ImageModerationExtension } from "../../Extensions/ImageModeration/ImageModerationExtension";
|
|
8
8
|
import { LinkPreviewExtension } from "../../Extensions/LinkPreviewExtension/LinkPreviewExtension";
|
|
9
9
|
import { MessageTranslationExtension } from "../../Extensions/MessageTranslation/MessageTranslationExtension";
|
|
@@ -13,8 +13,11 @@ import { SmartReplyExtension } from "../../Extensions/SmartReplies/SmartRepliesE
|
|
|
13
13
|
import { StickersExtension } from "../../Extensions/Stickers/StickersExtension";
|
|
14
14
|
import { TextModeratorExtension } from "../../Extensions/TextModerator/TextModeratorExtension";
|
|
15
15
|
import { ThumbnailGenerationExtension } from "../../Extensions/ThumbnailGeneration/ThumbnailGenerationExtension";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
16
|
+
import { AIConversationSummaryExtension } from "./../../AI/AIConversationSummary/AIConversationSummary";
|
|
17
|
+
import { AISmartRepliesExtension } from "./../../AI/AISmartReplies/AISmartReplies";
|
|
18
|
+
import { AIConversationStarterExtension } from "./../../AI/AIConversationStarter/AIConversationStarter";
|
|
19
|
+
import { CometChatUIKitCalls, CometChatSoundManager, } from "@cometchat/uikit-shared";
|
|
20
|
+
import { AIAssistBotExtension } from "../../AI/AIAssistBot/AIAssistBot";
|
|
18
21
|
export class CometChatUIKit {
|
|
19
22
|
static getDataSource() {
|
|
20
23
|
return ChatConfigurator.getDataSource();
|
|
@@ -40,9 +43,11 @@ export class CometChatUIKit {
|
|
|
40
43
|
appSettingsBuilder.overrideClientHost(uiKitSettings.getClientHost());
|
|
41
44
|
const appSettings = appSettingsBuilder.build();
|
|
42
45
|
return new Promise((resolve, reject) => {
|
|
43
|
-
CometChat.init(uiKitSettings?.appId, appSettings)
|
|
46
|
+
CometChat.init(uiKitSettings?.appId, appSettings)
|
|
47
|
+
.then(() => {
|
|
44
48
|
CometChat.setSource("uikit-v4", "web", "angular");
|
|
45
|
-
CometChatUIKit.getLoggedinUser()
|
|
49
|
+
CometChatUIKit.getLoggedinUser()
|
|
50
|
+
?.then((user) => {
|
|
46
51
|
if (user) {
|
|
47
52
|
ChatConfigurator.init();
|
|
48
53
|
this.initiateAfterLogin();
|
|
@@ -60,9 +65,11 @@ export class CometChatUIKit {
|
|
|
60
65
|
}
|
|
61
66
|
static getLoggedinUser() {
|
|
62
67
|
return new Promise((resolve, reject) => {
|
|
63
|
-
CometChat.getLoggedinUser()
|
|
68
|
+
CometChat.getLoggedinUser()
|
|
69
|
+
.then((user) => {
|
|
64
70
|
return resolve(user);
|
|
65
|
-
})
|
|
71
|
+
})
|
|
72
|
+
.catch((error) => {
|
|
66
73
|
return reject(error);
|
|
67
74
|
})
|
|
68
75
|
.catch((error) => {
|
|
@@ -77,10 +84,10 @@ export class CometChatUIKit {
|
|
|
77
84
|
.setRegion(CometChatUIKit.uiKitSettings?.region)
|
|
78
85
|
.build();
|
|
79
86
|
CometChatUIKitCalls.init(callAppSetting).then(() => {
|
|
80
|
-
console.log(
|
|
87
|
+
console.log("CometChatCalls initialization success");
|
|
81
88
|
new CallingExtension().enable();
|
|
82
89
|
}, (error) => {
|
|
83
|
-
console.log(
|
|
90
|
+
console.log("CometChatCalls initialization failed with error:", error);
|
|
84
91
|
});
|
|
85
92
|
}
|
|
86
93
|
}
|
|
@@ -88,16 +95,19 @@ export class CometChatUIKit {
|
|
|
88
95
|
if (CometChatUIKit.uiKitSettings != null) {
|
|
89
96
|
this.enableCalling();
|
|
90
97
|
let extensionList = this.uiKitSettings?.extensions || this.defaultExtensions;
|
|
98
|
+
let aiFeaturesList = Array.isArray(this.uiKitSettings?.aiFeatures)
|
|
99
|
+
? this.uiKitSettings?.aiFeatures
|
|
100
|
+
: this.defaultAIFeatures;
|
|
101
|
+
ChatSdkEventInitializer.attachListeners();
|
|
91
102
|
if (extensionList.length > 0) {
|
|
92
103
|
extensionList.forEach((extension) => {
|
|
93
104
|
extension?.enable();
|
|
94
105
|
});
|
|
95
106
|
}
|
|
96
|
-
if (
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
new AIEnabler().enable();
|
|
107
|
+
if (aiFeaturesList.length > 0) {
|
|
108
|
+
aiFeaturesList.forEach((aiFeatures) => {
|
|
109
|
+
aiFeatures?.enable();
|
|
110
|
+
});
|
|
101
111
|
}
|
|
102
112
|
}
|
|
103
113
|
}
|
|
@@ -105,19 +115,24 @@ export class CometChatUIKit {
|
|
|
105
115
|
if (!CometChatUIKit.checkAuthSettings())
|
|
106
116
|
return undefined;
|
|
107
117
|
return new Promise((resolve, reject) => {
|
|
108
|
-
CometChatUIKit.getLoggedinUser()
|
|
118
|
+
CometChatUIKit.getLoggedinUser()
|
|
119
|
+
?.then((user) => {
|
|
109
120
|
if (user) {
|
|
110
121
|
resolve(user);
|
|
111
122
|
ChatConfigurator.init();
|
|
112
123
|
this.initiateAfterLogin();
|
|
113
124
|
}
|
|
114
125
|
else {
|
|
115
|
-
let args = details.uid
|
|
116
|
-
|
|
126
|
+
let args = details.uid
|
|
127
|
+
? [details.uid, CometChatUIKit.uiKitSettings.authKey]
|
|
128
|
+
: [details.authToken];
|
|
129
|
+
CometChat.login(...args)
|
|
130
|
+
.then((user) => {
|
|
117
131
|
resolve(user);
|
|
118
132
|
ChatConfigurator.init();
|
|
119
133
|
this.initiateAfterLogin();
|
|
120
|
-
})
|
|
134
|
+
})
|
|
135
|
+
.catch((error) => {
|
|
121
136
|
reject(error);
|
|
122
137
|
});
|
|
123
138
|
}
|
|
@@ -131,9 +146,11 @@ export class CometChatUIKit {
|
|
|
131
146
|
if (!CometChatUIKit.checkAuthSettings())
|
|
132
147
|
return undefined;
|
|
133
148
|
return new Promise((resolve, reject) => {
|
|
134
|
-
CometChat.createUser(user, CometChatUIKit.uiKitSettings.authKey)
|
|
149
|
+
CometChat.createUser(user, CometChatUIKit.uiKitSettings.authKey)
|
|
150
|
+
.then((user) => {
|
|
135
151
|
resolve(user);
|
|
136
|
-
})
|
|
152
|
+
})
|
|
153
|
+
.catch((error) => {
|
|
137
154
|
reject(error);
|
|
138
155
|
});
|
|
139
156
|
});
|
|
@@ -142,9 +159,11 @@ export class CometChatUIKit {
|
|
|
142
159
|
if (!CometChatUIKit.checkAuthSettings())
|
|
143
160
|
return undefined;
|
|
144
161
|
return new Promise((resolve, reject) => {
|
|
145
|
-
CometChat.updateUser(user, CometChatUIKit.uiKitSettings.authKey)
|
|
162
|
+
CometChat.updateUser(user, CometChatUIKit.uiKitSettings.authKey)
|
|
163
|
+
.then((user) => {
|
|
146
164
|
resolve(user);
|
|
147
|
-
})
|
|
165
|
+
})
|
|
166
|
+
.catch((error) => {
|
|
148
167
|
reject(error);
|
|
149
168
|
});
|
|
150
169
|
});
|
|
@@ -153,9 +172,11 @@ export class CometChatUIKit {
|
|
|
153
172
|
if (!CometChatUIKit.checkAuthSettings())
|
|
154
173
|
return undefined;
|
|
155
174
|
return new Promise((resolve, reject) => {
|
|
156
|
-
CometChat.logout()
|
|
175
|
+
CometChat.logout()
|
|
176
|
+
.then((message) => {
|
|
157
177
|
resolve(message);
|
|
158
|
-
})
|
|
178
|
+
})
|
|
179
|
+
.catch((error) => {
|
|
159
180
|
reject(error);
|
|
160
181
|
});
|
|
161
182
|
});
|
|
@@ -170,19 +191,111 @@ export class CometChatUIKit {
|
|
|
170
191
|
}
|
|
171
192
|
return true;
|
|
172
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* Sends a form message and emits events based on the message status.
|
|
196
|
+
* @param message - The form message to be sent.
|
|
197
|
+
* @param disableLocalEvents - A boolean indicating whether to disable local events or not. Default value is false.
|
|
198
|
+
*/
|
|
199
|
+
static sendFormMessage(message, disableLocalEvents = false) {
|
|
200
|
+
if (!disableLocalEvents) {
|
|
201
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
202
|
+
message: message,
|
|
203
|
+
status: MessageStatus.inprogress,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
CometChat.sendInteractiveMessage(message)
|
|
207
|
+
.then((message) => {
|
|
208
|
+
if (!disableLocalEvents) {
|
|
209
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
210
|
+
message: message,
|
|
211
|
+
status: MessageStatus.success,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
})
|
|
215
|
+
.catch((error) => {
|
|
216
|
+
message.setMetadata({ error });
|
|
217
|
+
if (!disableLocalEvents) {
|
|
218
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
219
|
+
message: message,
|
|
220
|
+
status: MessageStatus.error,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
static sendCardMessage(message, disableLocalEvents = false) {
|
|
226
|
+
if (!disableLocalEvents) {
|
|
227
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
228
|
+
message: message,
|
|
229
|
+
status: MessageStatus.inprogress,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
CometChat.sendInteractiveMessage(message)
|
|
233
|
+
.then((message) => {
|
|
234
|
+
if (!disableLocalEvents) {
|
|
235
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
236
|
+
message: message,
|
|
237
|
+
status: MessageStatus.success,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
})
|
|
241
|
+
.catch((error) => {
|
|
242
|
+
message.setMetadata({ error });
|
|
243
|
+
if (!disableLocalEvents) {
|
|
244
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
245
|
+
message: message,
|
|
246
|
+
status: MessageStatus.error,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
static sendCustomInteractiveMessage(message, disableLocalEvents = false) {
|
|
252
|
+
if (!disableLocalEvents) {
|
|
253
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
254
|
+
message: message,
|
|
255
|
+
status: MessageStatus.inprogress,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
CometChat.sendInteractiveMessage(message)
|
|
259
|
+
.then((message) => {
|
|
260
|
+
if (!disableLocalEvents) {
|
|
261
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
262
|
+
message: message,
|
|
263
|
+
status: MessageStatus.success,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
})
|
|
267
|
+
.catch((error) => {
|
|
268
|
+
message.setMetadata({ error });
|
|
269
|
+
if (!disableLocalEvents) {
|
|
270
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
271
|
+
message: message,
|
|
272
|
+
status: MessageStatus.error,
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
}
|
|
173
277
|
// Helper methods to send messages
|
|
174
278
|
// [sendCustomMessage] used to send a custom message
|
|
175
279
|
static sendCustomMessage(message) {
|
|
176
280
|
return new Promise((resolve, reject) => {
|
|
177
|
-
CometChatMessageEvents.ccMessageSent.next({
|
|
281
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
282
|
+
message: message,
|
|
283
|
+
status: MessageStatus.inprogress,
|
|
284
|
+
});
|
|
178
285
|
CometChat.sendCustomMessage(message)
|
|
179
286
|
.then((message) => {
|
|
180
|
-
CometChatMessageEvents.ccMessageSent.next({
|
|
287
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
288
|
+
message: message,
|
|
289
|
+
status: MessageStatus.success,
|
|
290
|
+
});
|
|
181
291
|
resolve(message);
|
|
182
292
|
})
|
|
183
293
|
.catch((error) => {
|
|
184
294
|
message.setMetadata({ error: true });
|
|
185
|
-
CometChatMessageEvents.ccMessageSent.next({
|
|
295
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
296
|
+
message: message,
|
|
297
|
+
status: MessageStatus.error,
|
|
298
|
+
});
|
|
186
299
|
reject(error);
|
|
187
300
|
});
|
|
188
301
|
});
|
|
@@ -191,15 +304,24 @@ export class CometChatUIKit {
|
|
|
191
304
|
// [sendTextMessage] used to send a custom message
|
|
192
305
|
static sendTextMessage(message) {
|
|
193
306
|
return new Promise((resolve, reject) => {
|
|
194
|
-
CometChatMessageEvents.ccMessageSent.next({
|
|
307
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
308
|
+
message: message,
|
|
309
|
+
status: MessageStatus.inprogress,
|
|
310
|
+
});
|
|
195
311
|
CometChat.sendMessage(message)
|
|
196
312
|
.then((message) => {
|
|
197
|
-
CometChatMessageEvents.ccMessageSent.next({
|
|
313
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
314
|
+
message: message,
|
|
315
|
+
status: MessageStatus.success,
|
|
316
|
+
});
|
|
198
317
|
resolve(message);
|
|
199
318
|
})
|
|
200
319
|
.catch((error) => {
|
|
201
320
|
message.setMetadata({ error: true });
|
|
202
|
-
CometChatMessageEvents.ccMessageSent.next({
|
|
321
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
322
|
+
message: message,
|
|
323
|
+
status: MessageStatus.error,
|
|
324
|
+
});
|
|
203
325
|
reject(error);
|
|
204
326
|
});
|
|
205
327
|
});
|
|
@@ -208,15 +330,24 @@ export class CometChatUIKit {
|
|
|
208
330
|
// [sendMediaMessage] used to send a custom message
|
|
209
331
|
static sendMediaMessage(message) {
|
|
210
332
|
return new Promise((resolve, reject) => {
|
|
211
|
-
CometChatMessageEvents.ccMessageSent.next({
|
|
333
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
334
|
+
message: message,
|
|
335
|
+
status: MessageStatus.inprogress,
|
|
336
|
+
});
|
|
212
337
|
CometChat.sendMediaMessage(message)
|
|
213
338
|
.then((message) => {
|
|
214
|
-
CometChatMessageEvents.ccMessageSent.next({
|
|
339
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
340
|
+
message: message,
|
|
341
|
+
status: MessageStatus.success,
|
|
342
|
+
});
|
|
215
343
|
resolve(message);
|
|
216
344
|
})
|
|
217
345
|
.catch((error) => {
|
|
218
346
|
message.setMetadata({ error: true });
|
|
219
|
-
CometChatMessageEvents.ccMessageSent.next({
|
|
347
|
+
CometChatMessageEvents.ccMessageSent.next({
|
|
348
|
+
message: message,
|
|
349
|
+
status: MessageStatus.error,
|
|
350
|
+
});
|
|
220
351
|
reject(error);
|
|
221
352
|
});
|
|
222
353
|
});
|
|
@@ -237,4 +368,10 @@ CometChatUIKit.defaultExtensions = [
|
|
|
237
368
|
new ReactionExtension(),
|
|
238
369
|
new ImageModerationExtension(),
|
|
239
370
|
];
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tZXRDaGF0VUlLaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL1NoYXJlZC9Db21ldENoYXRVSWtpdC9Db21ldENoYXRVSUtpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3RHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQzdILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUNqSCxPQUFPLEVBQUMsbUJBQW1CLEVBQUUs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S0FBbUMsRUFBRSxFQUFFO2dCQUM3QyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3JDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDN0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQTNOTSwyQkFBWSxHQUFpQyxxQkFBcUIsQ0FBQztBQUNuRSx1QkFBUSxHQUE2QixpQkFBaUIsQ0FBQztBQXFEdkQsZ0NBQWlCLEdBQTBCO0lBQzdDLElBQUksaUJBQWlCLEVBQUU7SUFDL0IsSUFBSSxtQkFBbUIsRUFBRTtJQUN6QixJQUFJLGdDQUFnQyxFQUFFO0lBQ3ZDLElBQUksOEJBQThCLEVBQUU7SUFDbkMsSUFBSSwyQkFBMkIsRUFBRTtJQUNqQyxJQUFJLHNCQUFzQixFQUFFO0lBQzVCLElBQUksNEJBQTRCLEVBQUU7SUFDbEMsSUFBSSxvQkFBb0IsRUFBRTtJQUMxQixJQUFJLGNBQWMsRUFBRTtJQUNwQixJQUFJLGlCQUFpQixFQUFFO0lBQ3ZCLElBQUksd0JBQXdCLEVBQUU7Q0FDMUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gXCJAY29tZXRjaGF0L2NoYXQtc2RrLWphdmFzY3JpcHRcIjtcbmltcG9ydCB7IENoYXRDb25maWd1cmF0b3IgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0NoYXRDb25maWd1cmF0b3JcIjtcbmltcG9ydCB7IENvbWV0Q2hhdExvY2FsaXplLCBDb21ldENoYXRNZXNzYWdlRXZlbnRzLCBNZXNzYWdlU3RhdHVzIH0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzXCI7XG5pbXBvcnQge1VJS2l0U2V0dGluZ3N9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJ1xuaW1wb3J0IHsgRXh0ZW5zaW9uc0RhdGFTb3VyY2UgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0V4dGVuc2lvbkRhdGFTb3VyY2VcIjtcbmltcG9ydCB7IENhbGxpbmdFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvQ29sbGFib3JhdGl2ZURvY3VtZW50L0NvbGxhYm9yYXRpdmVEb2N1bWVudEV4dGVuc2lvblwiO1xuaW1wb3J0IHsgQ29sbGFib3JhdGl2ZVdoaXRlQm9hcmRFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9Db2xsYWJvcmF0aXZlV2hpdGVib2FyZC9Db2xsYWJvcmF0aXZlV2hpdGVib2FyZEV4dGVuc2lvblwiO1xuaW1wb3J0IHsgSW1hZ2VNb2RlcmF0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvSW1hZ2VNb2RlcmF0aW9uL0ltYWdlTW9kZXJhdGlvbkV4dGVuc2lvblwiO1xuaW1wb3J0IHsgTGlua1ByZXZpZXdFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9MaW5rUHJldmlld0V4dGVuc2lvbi9MaW5rUHJldmlld0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgTWVzc2FnZVRyYW5zbGF0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvTWVzc2FnZVRyYW5zbGF0aW9uL01lc3NhZ2VUcmFuc2xhdGlvbkV4dGVuc2lvblwiO1xuaW1wb3J0IHsgUG9sbHNFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9Qb2xsc0V4dGVuc2lvbi9Qb2xsc0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgUmVhY3Rpb25FeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9SZWFjdGlvbnMvUmVhY3Rpb25FeHRlbnNpb25cIjtcbmltcG9ydCB7IFNtYXJ0UmVwbHlFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9TbWFydFJlcGxpZXMvU21hcnRSZXBsaWVzRXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBTdGlja2Vyc0V4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9FeHRlbnNpb25zL1N0aWNrZXJzL1N0aWNrZXJzRXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBUZXh0TW9kZXJhdG9yRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvVGV4dE1vZGVyYXRvci9UZXh0TW9kZXJhdG9yRXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBUaHVtYm5haWxHZW5lcmF0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvVGh1bWJuYWlsR2VuZXJhdGlvbi9UaHVtYm5haWxHZW5lcmF0aW9uRXh0ZW5zaW9uXCI7XG5pbXBvcnQge0NvbWV0Q2hhdFVJS2l0Q2FsbHMsIENvbWV0Q2hhdFNvdW5kTWFuYWdlciB9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJztcbmltcG9ydCB7IEFJRW5hYmxlciB9IGZyb20gXCIuLi8uLi9BSS9BSUVuYWJsZXJcIjtcbmV4cG9ydCBjbGFzcyBDb21ldENoYXRVSUtpdCB7XG4gICAgc3RhdGljIHVpS2l0U2V0dGluZ3M6IFVJS2l0U2V0dGluZ3M7XG4gICAgc3RhdGljIFNvdW5kTWFuYWdlcjogdHlwZW9mIENvbWV0Q2hhdFNvdW5kTWFuYWdlciA9IENvbWV0Q2hhdFNvdW5kTWFuYWdlcjtcbiAgICBzdGF0aWMgTG9jYWxpemU6IHR5cGVvZiBDb21ldENoYXRMb2NhbGl6ZSA9IENvbWV0Q2hhdExvY2FsaXplO1xuICAgIHN0YXRpYyBnZXREYXRhU291cmNlKCkge1xuICAgICAgcmV0dXJuIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpO1xuICB9XG4gICAgc3RhdGljIGluaXQodWlLaXRTZXR0aW5nczogVUlLaXRTZXR0aW5ncyk6UHJvbWlzZTxPYmplY3Q+IHwgdW5kZWZpbmVkICB7XG4gICAgICAvLyBwZXJmb3JtIHNkayBpbml0IHRha2luZyB2YWx1ZXMgZnJvbSB1aUtpdFNldHRpbmdzXG4gICAgICBDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzID0gdWlLaXRTZXR0aW5nc1xuICAgICAgaWYgKCFDb21ldENoYXRVSUtpdC5jaGVja0F1dGhTZXR0aW5ncygpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgY29uc3QgYXBwU2V0dGluZ3NCdWlsZGVyID0gbmV3IENvbWV0Q2hhdC5BcHBTZXR0aW5nc0J1aWxkZXIoKTtcbiAgICAgIGlmICh1aUtpdFNldHRpbmdzLmdldFJvbGVzKCkpIHtcbiAgICAgICAgYXBwU2V0dGluZ3NCdWlsZGVyLnN1YnNjcmliZVByZXNlbmNlRm9yUm9sZXModWlLaXRTZXR0aW5ncy5nZXRSb2xlcygpKTtcbiAgICAgIH0gZWxzZSBpZiAodWlLaXRTZXR0aW5ncy5nZXRTdWJzY3JpcHRpb25UeXBlKCkgPT09IFwiQUxMX1VTRVJTXCIpIHtcbiAgICAgICAgYXBwU2V0dGluZ3NCdWlsZGVyLnN1YnNjcmliZVByZXNlbmNlRm9yQWxsVXNlcnMoKTtcbiAgICAgIH0gZWxzZSBpZiAodWlLaXRTZXR0aW5ncy5nZXRTdWJzY3JpcHRpb25UeXBlKCkgPT09IFwiRlJJRU5EU1wiKSB7XG4gICAgICAgIGFwcFNldHRpbmdzQnVpbGRlci5zdWJzY3JpYmVQcmVzZW5jZUZvckZyaWVuZHMoKTtcbiAgICAgIH1cbiAgICAgIGFwcFNldHRpbmdzQnVpbGRlci5hdXRvRXN0YWJsaXNoU29ja2V0Q29ubmVjdGlvbih1aUtpdFNldHRpbmdzLmlzQXV0b0VzdGFibGlzaFNvY2tldENvbm5lY3Rpb24oKSk7XG4gICAgICBhcHBTZXR0aW5nc0J1aWxkZXIuc2V0UmVnaW9uKHVpS2l0U2V0dGluZ3MuZ2V0UmVnaW9uKCkpO1xuICAgICAgYXBwU2V0dGluZ3NCdWlsZGVyLm92ZXJyaWRlQWRtaW5Ib3N0KHVpS2l0U2V0dGluZ3MuZ2V0QWRtaW5Ib3N0KCkpO1xuICAgICAgYXBwU2V0dGluZ3NCdWlsZGVyLm92ZXJyaWRlQ2xpZW50SG9zdCh1aUtpdFNldHRpbmdzLmdldENsaWVudEhvc3QoKSk7XG4gICAgICBjb25zdCBhcHBTZXR0aW5ncyA9IGFwcFNldHRpbmdzQnVpbGRlci5idWlsZCgpO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgQ29tZXRDaGF0LmluaXQodWlLaXRTZXR0aW5ncz8uYXBwSWQsYXBwU2V0dGluZ3MpLnRoZW4oKCk9PntcbiAgICAgICAgICBDb21ldENoYXQuc2V0U291cmNlKFwidWlraXQtdjRcIiwgXCJ3ZWJcIiwgXCJhbmd1bGFyXCIpXG4gICAgICAgICAgQ29tZXRDaGF0VUlLaXQuZ2V0TG9nZ2VkaW5Vc2VyKCk/LnRoZW4oKHVzZXIpPT57XG4gICAgICAgICAgICBpZih1c2VyKXtcbiAgICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5pbml0KCk7XG4gICAgICAgICAgICAgIHRoaXMuaW5pdGlhdGVBZnRlckxvZ2luKCk7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgfSAgXG4gICAgICAgICAgICAgcmVzb2x2ZSh1c2VyKSAgICAgICAgICAgICAgICBcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PntcbiAgICAgICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgICAgICB9KVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PntcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcilcbiAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9XG4gICAgc3RhdGljIGdldExvZ2dlZGluVXNlcigpOlByb21pc2U8Q29tZXRDaGF0LlVzZXI+IHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgQ29tZXRDaGF0LmdldExvZ2dlZGluVXNlcigpLnRoZW4oKHVzZXI6Q29tZXRDaGF0LlVzZXIgfCBudWxsKT0+e1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodXNlciEpXG4gICAgICAgICAgfSkuY2F0Y2goKGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pPT57XG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKVxuICAgICAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pPT57XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpXG4gICAgICB9KVxuICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyBkZWZhdWx0RXh0ZW5zaW9uczpFeHRlbnNpb25zRGF0YVNvdXJjZVtdID0gW1xuICAgICAgICAgbmV3IFN0aWNrZXJzRXh0ZW5zaW9uKCksXG4gbmV3IFNtYXJ0UmVwbHlFeHRlbnNpb24oKSxcbiBuZXcgQ29sbGFib3JhdGl2ZVdoaXRlQm9hcmRFeHRlbnNpb24oKSxcbm5ldyBDb2xsYWJvcmF0aXZlRG9jdW1lbnRFeHRlbnNpb24oKSxcbiBuZXcgTWVzc2FnZVRyYW5zbGF0aW9uRXh0ZW5zaW9uKCksXG4gbmV3IFRleHRNb2RlcmF0b3JFeHRlbnNpb24oKSxcbiBuZXcgVGh1bWJuYWlsR2VuZXJhdGlvbkV4dGVuc2lvbigpLFxuIG5ldyBMaW5rUHJldmlld0V4dGVuc2lvbigpLFxuIG5ldyBQb2xsc0V4dGVuc2lvbigpLFxuIG5ldyBSZWFjdGlvbkV4dGVuc2lvbigpLFxuIG5ldyBJbWFnZU1vZGVyYXRpb25FeHRlbnNpb24oKSxcbiAgICBdXG4gICAgc3RhdGljICBlbmFibGVDYWxsaW5nKCk6dm9pZHtcbiAgICAgIGlmKENvbWV0Q2hhdFVJS2l0Q2FsbHMpe1xuICAgICAgICBjb25zdCBjYWxsQXBwU2V0dGluZyA9IG5ldyBDb21ldENoYXRVSUtpdENhbGxzLkNhbGxBcHBTZXR0aW5nc0J1aWxkZXIoKVxuICAgICAgICAgIC5zZXRBcHBJZChDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzPy5hcHBJZClcbiAgICAgICAgICAuc2V0UmVnaW9uKENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3M/LnJlZ2lvbilcbiAgICAgICAgICAuYnVpbGQoKTtcbiAgICAgICAgQ29tZXRDaGF0VUlLaXRDYWxscy5pbml0KGNhbGxBcHBTZXR0aW5nKS50aGVuKFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb21ldENoYXRDYWxscyBpbml0aWFsaXphdGlvbiBzdWNjZXNzJyk7XG4gICAgICAgICAgICBuZXcgQ2FsbGluZ0V4dGVuc2lvbigpLmVuYWJsZSgpXG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyb3I6YW55KSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQ29tZXRDaGF0Q2FsbHMgaW5pdGlhbGl6YXRpb24gZmFpbGVkIHdpdGggZXJyb3I6JywgZXJyb3IpO1xuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB9XG4gICAgcHJpdmF0ZSBzdGF0aWMgIGluaXRpYXRlQWZ0ZXJMb2dpbigpIHtcbiAgICAgICAgaWYgKENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVDYWxsaW5nKCk7XG4gICAgICAgICAgICBsZXQgZXh0ZW5zaW9uTGlzdDogRXh0ZW5zaW9uc0RhdGFTb3VyY2VbXSA9IHRoaXMudWlLaXRTZXR0aW5ncz8uZXh0ZW5zaW9ucyB8fCB0aGlzLmRlZmF1bHRFeHRlbnNpb25zO1xuXG4gICAgICAgICAgICBpZiAoZXh0ZW5zaW9uTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uTGlzdC5mb3JFYWNoKChleHRlbnNpb246IEV4dGVuc2lvbnNEYXRhU291cmNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbj8uZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgIGlmKHRoaXMudWlLaXRTZXR0aW5ncyEuYWlGZWF0dXJlcyl7XG4gICAgICAgICAgICB0aGlzLnVpS2l0U2V0dGluZ3MhLmFpRmVhdHVyZXM/LmVuYWJsZSgpXG4gICAgICAgIH1cbiAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIG5ldyBBSUVuYWJsZXIoKS5lbmFibGUoKSBcbiAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBhc3luYyBsb2dpbihkZXRhaWxzOnt1aWQ/OnN0cmluZyxhdXRoVG9rZW4/OnN0cmluZ30pOlByb21pc2U8T2JqZWN0IHwgdW5kZWZpbmVkPiB7XG4gICAgICBpZiAoIUNvbWV0Q2hhdFVJS2l0LmNoZWNrQXV0aFNldHRpbmdzKCkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBDb21ldENoYXRVSUtpdC5nZXRMb2dnZWRpblVzZXIoKT8udGhlbigodXNlcik9PntcbiAgICAgICAgICBpZih1c2VyKXtcbiAgICAgICAgICAgIHJlc29sdmUodXNlcilcbiAgICAgICAgICAgIENoYXRDb25maWd1cmF0b3IuaW5pdCgpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWF0ZUFmdGVyTG9naW4oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIGxldCBhcmdzOmFueVtdID0gZGV0YWlscy51aWQgPyBbZGV0YWlscy51aWQsQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncy5hdXRoS2V5IV0gOiBbZGV0YWlscy5hdXRoVG9rZW5dXG4gICAgICAgICAgICBDb21ldENoYXQubG9naW4oLi4uYXJncykudGhlbigodXNlcjpDb21ldENoYXQuVXNlcik9PntcbiAgICAgICAgICAgICAgcmVzb2x2ZSh1c2VyKVxuICAgICAgICAgICAgICBDaGF0Q29uZmlndXJhdG9yLmluaXQoKTtcbiAgICAgICAgICAgICAgdGhpcy5pbml0aWF0ZUFmdGVyTG9naW4oKVxuICAgICAgICAgICAgfSkuY2F0Y2goKGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pPT57XG4gICAgICAgICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxufSlcbi5jYXRjaCgoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PntcbiAgcmVqZWN0KGVycm9yKVxufSlcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgY3JlYXRlVXNlcih1c2VyOiBDb21ldENoYXQuVXNlcik6UHJvbWlzZTxPYmplY3QgfCB1bmRlZmluZWQ+IHtcbiAgICAgIGlmICghQ29tZXRDaGF0VUlLaXQuY2hlY2tBdXRoU2V0dGluZ3MoKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIENvbWV0Q2hhdC5jcmVhdGVVc2VyKHVzZXIsIENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MuYXV0aEtleSEpLnRoZW4oKHVzZXI6Q29tZXRDaGF0LlVzZXIpPT57XG4gICAgICAgICAgcmVzb2x2ZSh1c2VyKVxuICAgICAgICB9KS5jYXRjaCgoZXJyb3I6Q29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbik9PntcbiAgICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICAgIH0pXG4gICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgdXBkYXRlVXNlcih1c2VyOiBDb21ldENoYXQuVXNlcik6UHJvbWlzZTxPYmplY3QgfCB1bmRlZmluZWQ+IHtcbiAgICAgIGlmICghQ29tZXRDaGF0VUlLaXQuY2hlY2tBdXRoU2V0dGluZ3MoKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICBDb21ldENoYXQudXBkYXRlVXNlcih1c2VyLCBDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzLmF1dGhLZXkhKS50aGVuKCh1c2VyOkNvbWV0Q2hhdC5Vc2VyKT0+e1xuICAgICAgICAgIHJlc29sdmUodXNlcilcbiAgICAgICAgfSkuY2F0Y2goKGVycm9yOkNvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pPT57XG4gICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICAgIH0pXG4gICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgYXN5bmMgbG9nb3V0KCk6UHJvbWlzZTxPYmplY3QgfCB1bmRlZmluZWQ+IHtcbiAgICAgIGlmICghQ29tZXRDaGF0VUlLaXQuY2hlY2tBdXRoU2V0dGluZ3MoKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIENvbWV0Q2hhdC5sb2dvdXQoKS50aGVuKChtZXNzYWdlOiBvYmplY3QpPT57XG4gICAgICAgICByZXNvbHZlKG1lc3NhZ2UpXG4gICAgICAgIH0pLmNhdGNoKChlcnJvcjpDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKT0+e1xuICAgICAgICAgIHJlamVjdChlcnJvcilcbiAgICAgICAgfSlcbiAgICB9KTtcbiAgICB9XG4gICAgLy8gRXJyb3IgaGFuZGxpbmcgdG8gZ2l2ZSBiZXR0ZXIgbG9nc1xuICAgIHN0YXRpYyBjaGVja0F1dGhTZXR0aW5ncygpOiBib29sZWFuIHtcbiAgICAgIGlmIChDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MuYXBwSWQgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gSGVscGVyIG1ldGhvZHMgdG8gc2VuZCBtZXNzYWdlc1xuICAgIC8vIFtzZW5kQ3VzdG9tTWVzc2FnZV0gdXNlZCB0byBzZW5kIGEgY3VzdG9tIG1lc3NhZ2VcbiAgICBzdGF0aWMgc2VuZEN1c3RvbU1lc3NhZ2UobWVzc2FnZTogQ29tZXRDaGF0LkN1c3RvbU1lc3NhZ2UpOiBQcm9taXNlPENvbWV0Q2hhdC5CYXNlTWVzc2FnZT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoeyBtZXNzYWdlOiBtZXNzYWdlLCBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzcyB9KTtcbiAgICAgICAgQ29tZXRDaGF0LnNlbmRDdXN0b21NZXNzYWdlKG1lc3NhZ2UpXG4gICAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoeyBtZXNzYWdlOiBtZXNzYWdlLCBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyB9KTtcbiAgICAgICAgICAgIHJlc29sdmUobWVzc2FnZSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgICBtZXNzYWdlLnNldE1ldGFkYXRhKHsgZXJyb3I6IHRydWUgfSk7XG4gICAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7IG1lc3NhZ2U6IG1lc3NhZ2UsIHN0YXR1czogTWVzc2FnZVN0YXR1cy5lcnJvciB9KTtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAgIC8vIEhlbHBlciBtZXRob2RzIHRvIHNlbmQgbWVzc2FnZXNcbiAgICAvLyBbc2VuZFRleHRNZXNzYWdlXSB1c2VkIHRvIHNlbmQgYSBjdXN0b20gbWVzc2FnZVxuICAgIHN0YXRpYyBzZW5kVGV4dE1lc3NhZ2UobWVzc2FnZTogQ29tZXRDaGF0LlRleHRNZXNzYWdlKTogUHJvbWlzZTxDb21ldENoYXQuQmFzZU1lc3NhZ2U+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHsgbWVzc2FnZTogbWVzc2FnZSwgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MgfSk7XG4gICAgICAgIENvbWV0Q2hhdC5zZW5kTWVzc2FnZShtZXNzYWdlKVxuICAgICAgICAgIC50aGVuKChtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpID0+IHtcbiAgICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHsgbWVzc2FnZTogbWVzc2FnZSwgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLnN1Y2Nlc3MgfSk7XG4gICAgICAgICAgICByZXNvbHZlKG1lc3NhZ2UpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yOiB0cnVlIH0pO1xuICAgICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoeyBtZXNzYWdlOiBtZXNzYWdlLCBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IgfSk7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgICAvLyBIZWxwZXIgbWV0aG9kcyB0byBzZW5kIG1lc3NhZ2VzXG4gICAgLy8gW3NlbmRNZWRpYU1lc3NhZ2VdIHVzZWQgdG8gc2VuZCBhIGN1c3RvbSBtZXNzYWdlXG4gICAgc3RhdGljIHNlbmRNZWRpYU1lc3NhZ2UobWVzc2FnZTogQ29tZXRDaGF0Lk1lZGlhTWVzc2FnZSk6IFByb21pc2U8Q29tZXRDaGF0LkJhc2VNZXNzYWdlPiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7IG1lc3NhZ2U6IG1lc3NhZ2UsIHN0YXR1czogTWVzc2FnZVN0YXR1cy5pbnByb2dyZXNzIH0pO1xuICAgICAgICBDb21ldENoYXQuc2VuZE1lZGlhTWVzc2FnZShtZXNzYWdlKVxuICAgICAgICAgIC50aGVuKChtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpID0+IHtcbiAgICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHsgbWVzc2FnZTogbWVzc2FnZSwgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLnN1Y2Nlc3MgfSk7XG4gICAgICAgICAgICByZXNvbHZlKG1lc3NhZ2UpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yOiB0cnVlIH0pO1xuICAgICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoeyBtZXNzYWdlOiBtZXNzYWdlLCBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IgfSk7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG59Il19
|
|
371
|
+
CometChatUIKit.defaultAIFeatures = [
|
|
372
|
+
new AIConversationStarterExtension(),
|
|
373
|
+
new AISmartRepliesExtension(),
|
|
374
|
+
new AIConversationSummaryExtension(),
|
|
375
|
+
new AIAssistBotExtension(),
|
|
376
|
+
];
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tZXRDaGF0VUlLaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL1NoYXJlZC9Db21ldENoYXRVSWtpdC9Db21ldENoYXRVSUtpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFHdEIsYUFBYSxHQUNkLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDdkgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMkVBQTJFLENBQUM7QUFDN0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUNqSCxPQUFPLEVB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QUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFsWU0sMkJBQVksR0FBaUMscUJBQXFCLENBQUM7QUFDbkUsdUJBQVEsR0FBNkIsaUJBQWlCLENBQUM7QUEyRHZELGdDQUFpQixHQUEyQjtJQUNqRCxJQUFJLGlCQUFpQixFQUFFO0lBQ3ZCLElBQUksbUJBQW1CLEVBQUU7SUFDekIsSUFBSSxnQ0FBZ0MsRUFBRTtJQUN0QyxJQUFJLDhCQUE4QixFQUFFO0lBQ3BDLElBQUksMkJBQTJCLEVBQUU7SUFDakMsSUFBSSxzQkFBc0IsRUFBRTtJQUM1QixJQUFJLDRCQUE0QixFQUFFO0lBQ2xDLElBQUksb0JBQW9CLEVBQUU7SUFDMUIsSUFBSSxjQUFjLEVBQUU7SUFDcEIsSUFBSSxpQkFBaUIsRUFBRTtJQUN2QixJQUFJLHdCQUF3QixFQUFFO0NBQy9CLENBQUM7QUFFSyxnQ0FBaUIsR0FBNEI7SUFDbEQsSUFBSSw4QkFBOEIsRUFBRTtJQUNwQyxJQUFJLHVCQUF1QixFQUFFO0lBQzdCLElBQUksOEJBQThCLEVBQUU7SUFDcEMsSUFBSSxvQkFBb0IsRUFBRTtDQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVUlLaXRTZXR0aW5ncyB9IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZFwiO1xuaW1wb3J0IHtcbiAgQ2FyZE1lc3NhZ2UsXG4gIENoYXRTZGtFdmVudEluaXRpYWxpemVyLFxuICBDb21ldENoYXRMb2NhbGl6ZSxcbiAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cyxcbiAgQ3VzdG9tSW50ZXJhY3RpdmVNZXNzYWdlLFxuICBGb3JtTWVzc2FnZSxcbiAgTWVzc2FnZVN0YXR1cyxcbn0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzXCI7XG5cbmltcG9ydCB7IENhbGxpbmdFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgQ2hhdENvbmZpZ3VyYXRvciB9IGZyb20gXCIuLi9GcmFtZXdvcmsvQ2hhdENvbmZpZ3VyYXRvclwiO1xuaW1wb3J0IHsgQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvQ29sbGFib3JhdGl2ZURvY3VtZW50L0NvbGxhYm9yYXRpdmVEb2N1bWVudEV4dGVuc2lvblwiO1xuaW1wb3J0IHsgQ29sbGFib3JhdGl2ZVdoaXRlQm9hcmRFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9Db2xsYWJvcmF0aXZlV2hpdGVib2FyZC9Db2xsYWJvcmF0aXZlV2hpdGVib2FyZEV4dGVuc2lvblwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgRXh0ZW5zaW9uc0RhdGFTb3VyY2UgfSBmcm9tIFwiLi4vRnJhbWV3b3JrL0V4dGVuc2lvbkRhdGFTb3VyY2VcIjtcbmltcG9ydCB7IEltYWdlTW9kZXJhdGlvbkV4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9FeHRlbnNpb25zL0ltYWdlTW9kZXJhdGlvbi9JbWFnZU1vZGVyYXRpb25FeHRlbnNpb25cIjtcbmltcG9ydCB7IExpbmtQcmV2aWV3RXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvTGlua1ByZXZpZXdFeHRlbnNpb24vTGlua1ByZXZpZXdFeHRlbnNpb25cIjtcbmltcG9ydCB7IE1lc3NhZ2VUcmFuc2xhdGlvbkV4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9FeHRlbnNpb25zL01lc3NhZ2VUcmFuc2xhdGlvbi9NZXNzYWdlVHJhbnNsYXRpb25FeHRlbnNpb25cIjtcbmltcG9ydCB7IFBvbGxzRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvUG9sbHNFeHRlbnNpb24vUG9sbHNFeHRlbnNpb25cIjtcbmltcG9ydCB7IFJlYWN0aW9uRXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvUmVhY3Rpb25zL1JlYWN0aW9uRXh0ZW5zaW9uXCI7XG5pbXBvcnQgeyBTbWFydFJlcGx5RXh0ZW5zaW9uIH0gZnJvbSBcIi4uLy4uL0V4dGVuc2lvbnMvU21hcnRSZXBsaWVzL1NtYXJ0UmVwbGllc0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgU3RpY2tlcnNFeHRlbnNpb24gfSBmcm9tIFwiLi4vLi4vRXh0ZW5zaW9ucy9TdGlja2Vycy9TdGlja2Vyc0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgVGV4dE1vZGVyYXRvckV4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9FeHRlbnNpb25zL1RleHRNb2RlcmF0b3IvVGV4dE1vZGVyYXRvckV4dGVuc2lvblwiO1xuaW1wb3J0IHsgVGh1bWJuYWlsR2VuZXJhdGlvbkV4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9FeHRlbnNpb25zL1RodW1ibmFpbEdlbmVyYXRpb24vVGh1bWJuYWlsR2VuZXJhdGlvbkV4dGVuc2lvblwiO1xuaW1wb3J0IHsgQUlDb252ZXJzYXRpb25TdW1tYXJ5RXh0ZW5zaW9uIH0gZnJvbSBcIi4vLi4vLi4vQUkvQUlDb252ZXJzYXRpb25TdW1tYXJ5L0FJQ29udmVyc2F0aW9uU3VtbWFyeVwiO1xuaW1wb3J0IHsgQUlTbWFydFJlcGxpZXNFeHRlbnNpb24gfSBmcm9tIFwiLi8uLi8uLi9BSS9BSVNtYXJ0UmVwbGllcy9BSVNtYXJ0UmVwbGllc1wiO1xuaW1wb3J0IHsgQUlDb252ZXJzYXRpb25TdGFydGVyRXh0ZW5zaW9uIH0gZnJvbSBcIi4vLi4vLi4vQUkvQUlDb252ZXJzYXRpb25TdGFydGVyL0FJQ29udmVyc2F0aW9uU3RhcnRlclwiO1xuaW1wb3J0IHtcbiAgQ29tZXRDaGF0VUlLaXRDYWxscyxcbiAgQ29tZXRDaGF0U291bmRNYW5hZ2VyLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7IEFJRXh0ZW5zaW9uRGF0YVNvdXJjZSB9IGZyb20gXCIuLi9GcmFtZXdvcmsvQUlFeHRlbnNpb25EYXRhU291cmNlXCI7XG5pbXBvcnQgeyBBSUFzc2lzdEJvdEV4dGVuc2lvbiB9IGZyb20gXCIuLi8uLi9BSS9BSUFzc2lzdEJvdC9BSUFzc2lzdEJvdFwiO1xuXG5leHBvcnQgY2xhc3MgQ29tZXRDaGF0VUlLaXQge1xuICBzdGF0aWMgdWlLaXRTZXR0aW5nczogVUlLaXRTZXR0aW5ncztcbiAgc3RhdGljIFNvdW5kTWFuYWdlcjogdHlwZW9mIENvbWV0Q2hhdFNvdW5kTWFuYWdlciA9IENvbWV0Q2hhdFNvdW5kTWFuYWdlcjtcbiAgc3RhdGljIExvY2FsaXplOiB0eXBlb2YgQ29tZXRDaGF0TG9jYWxpemUgPSBDb21ldENoYXRMb2NhbGl6ZTtcbiAgc3RhdGljIGdldERhdGFTb3VyY2UoKSB7XG4gICAgcmV0dXJuIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpO1xuICB9XG4gIHN0YXRpYyBpbml0KHVpS2l0U2V0dGluZ3M6IFVJS2l0U2V0dGluZ3MpOiBQcm9taXNlPE9iamVjdD4gfCB1bmRlZmluZWQge1xuICAgIC8vIHBlcmZvcm0gc2RrIGluaXQgdGFraW5nIHZhbHVlcyBmcm9tIHVpS2l0U2V0dGluZ3NcbiAgICBDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzID0gdWlLaXRTZXR0aW5ncztcbiAgICBpZiAoIUNvbWV0Q2hhdFVJS2l0LmNoZWNrQXV0aFNldHRpbmdzKCkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgYXBwU2V0dGluZ3NCdWlsZGVyID0gbmV3IENvbWV0Q2hhdC5BcHBTZXR0aW5nc0J1aWxkZXIoKTtcbiAgICBpZiAodWlLaXRTZXR0aW5ncy5nZXRSb2xlcygpKSB7XG4gICAgICBhcHBTZXR0aW5nc0J1aWxkZXIuc3Vic2NyaWJlUHJlc2VuY2VGb3JSb2xlcyh1aUtpdFNldHRpbmdzLmdldFJvbGVzKCkpO1xuICAgIH0gZWxzZSBpZiAodWlLaXRTZXR0aW5ncy5nZXRTdWJzY3JpcHRpb25UeXBlKCkgPT09IFwiQUxMX1VTRVJTXCIpIHtcbiAgICAgIGFwcFNldHRpbmdzQnVpbGRlci5zdWJzY3JpYmVQcmVzZW5jZUZvckFsbFVzZXJzKCk7XG4gICAgfSBlbHNlIGlmICh1aUtpdFNldHRpbmdzLmdldFN1YnNjcmlwdGlvblR5cGUoKSA9PT0gXCJGUklFTkRTXCIpIHtcbiAgICAgIGFwcFNldHRpbmdzQnVpbGRlci5zdWJzY3JpYmVQcmVzZW5jZUZvckZyaWVuZHMoKTtcbiAgICB9XG4gICAgYXBwU2V0dGluZ3NCdWlsZGVyLmF1dG9Fc3RhYmxpc2hTb2NrZXRDb25uZWN0aW9uKFxuICAgICAgdWlLaXRTZXR0aW5ncy5pc0F1dG9Fc3RhYmxpc2hTb2NrZXRDb25uZWN0aW9uKClcbiAgICApO1xuXG4gICAgYXBwU2V0dGluZ3NCdWlsZGVyLnNldFJlZ2lvbih1aUtpdFNldHRpbmdzLmdldFJlZ2lvbigpKTtcbiAgICBhcHBTZXR0aW5nc0J1aWxkZXIub3ZlcnJpZGVBZG1pbkhvc3QodWlLaXRTZXR0aW5ncy5nZXRBZG1pbkhvc3QoKSk7XG4gICAgYXBwU2V0dGluZ3NCdWlsZGVyLm92ZXJyaWRlQ2xpZW50SG9zdCh1aUtpdFNldHRpbmdzLmdldENsaWVudEhvc3QoKSk7XG4gICAgY29uc3QgYXBwU2V0dGluZ3MgPSBhcHBTZXR0aW5nc0J1aWxkZXIuYnVpbGQoKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgQ29tZXRDaGF0LmluaXQodWlLaXRTZXR0aW5ncz8uYXBwSWQsIGFwcFNldHRpbmdzKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgQ29tZXRDaGF0LnNldFNvdXJjZShcInVpa2l0LXY0XCIsIFwid2ViXCIsIFwiYW5ndWxhclwiKTtcbiAgICAgICAgICBDb21ldENoYXRVSUtpdC5nZXRMb2dnZWRpblVzZXIoKVxuICAgICAgICAgICAgPy50aGVuKCh1c2VyKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgICAgICAgICAgQ2hhdENvbmZpZ3VyYXRvci5pbml0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWF0ZUFmdGVyTG9naW4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXNvbHZlKHVzZXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBnZXRMb2dnZWRpblVzZXIoKTogUHJvbWlzZTxDb21ldENoYXQuVXNlcj4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBDb21ldENoYXQuZ2V0TG9nZ2VkaW5Vc2VyKClcbiAgICAgICAgLnRoZW4oKHVzZXI6IENvbWV0Q2hhdC5Vc2VyIHwgbnVsbCkgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKHVzZXIhKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBkZWZhdWx0RXh0ZW5zaW9uczogRXh0ZW5zaW9uc0RhdGFTb3VyY2VbXSA9IFtcbiAgICBuZXcgU3RpY2tlcnNFeHRlbnNpb24oKSxcbiAgICBuZXcgU21hcnRSZXBseUV4dGVuc2lvbigpLFxuICAgIG5ldyBDb2xsYWJvcmF0aXZlV2hpdGVCb2FyZEV4dGVuc2lvbigpLFxuICAgIG5ldyBDb2xsYWJvcmF0aXZlRG9jdW1lbnRFeHRlbnNpb24oKSxcbiAgICBuZXcgTWVzc2FnZVRyYW5zbGF0aW9uRXh0ZW5zaW9uKCksXG4gICAgbmV3IFRleHRNb2RlcmF0b3JFeHRlbnNpb24oKSxcbiAgICBuZXcgVGh1bWJuYWlsR2VuZXJhdGlvbkV4dGVuc2lvbigpLFxuICAgIG5ldyBMaW5rUHJldmlld0V4dGVuc2lvbigpLFxuICAgIG5ldyBQb2xsc0V4dGVuc2lvbigpLFxuICAgIG5ldyBSZWFjdGlvbkV4dGVuc2lvbigpLFxuICAgIG5ldyBJbWFnZU1vZGVyYXRpb25FeHRlbnNpb24oKSxcbiAgXTtcblxuICBzdGF0aWMgZGVmYXVsdEFJRmVhdHVyZXM6IEFJRXh0ZW5zaW9uRGF0YVNvdXJjZVtdID0gW1xuICAgIG5ldyBBSUNvbnZlcnNhdGlvblN0YXJ0ZXJFeHRlbnNpb24oKSxcbiAgICBuZXcgQUlTbWFydFJlcGxpZXNFeHRlbnNpb24oKSxcbiAgICBuZXcgQUlDb252ZXJzYXRpb25TdW1tYXJ5RXh0ZW5zaW9uKCksXG4gICAgbmV3IEFJQXNzaXN0Qm90RXh0ZW5zaW9uKCksXG4gIF07XG4gIHN0YXRpYyBlbmFibGVDYWxsaW5nKCk6IHZvaWQge1xuICAgIGlmIChDb21ldENoYXRVSUtpdENhbGxzKSB7XG4gICAgICBjb25zdCBjYWxsQXBwU2V0dGluZyA9IG5ldyBDb21ldENoYXRVSUtpdENhbGxzLkNhbGxBcHBTZXR0aW5nc0J1aWxkZXIoKVxuICAgICAgICAuc2V0QXBwSWQoQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncz8uYXBwSWQpXG4gICAgICAgIC5zZXRSZWdpb24oQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncz8ucmVnaW9uKVxuICAgICAgICAuYnVpbGQoKTtcbiAgICAgIENvbWV0Q2hhdFVJS2l0Q2FsbHMuaW5pdChjYWxsQXBwU2V0dGluZykudGhlbihcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ29tZXRDaGF0Q2FsbHMgaW5pdGlhbGl6YXRpb24gc3VjY2Vzc1wiKTtcbiAgICAgICAgICBuZXcgQ2FsbGluZ0V4dGVuc2lvbigpLmVuYWJsZSgpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgXCJDb21ldENoYXRDYWxscyBpbml0aWFsaXphdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjpcIixcbiAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpbml0aWF0ZUFmdGVyTG9naW4oKSB7XG4gICAgaWYgKENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MgIT0gbnVsbCkge1xuICAgICAgdGhpcy5lbmFibGVDYWxsaW5nKCk7XG4gICAgICBsZXQgZXh0ZW5zaW9uTGlzdDogRXh0ZW5zaW9uc0RhdGFTb3VyY2VbXSA9XG4gICAgICAgIHRoaXMudWlLaXRTZXR0aW5ncz8uZXh0ZW5zaW9ucyB8fCB0aGlzLmRlZmF1bHRFeHRlbnNpb25zO1xuXG4gICAgICBsZXQgYWlGZWF0dXJlc0xpc3Q6IEFJRXh0ZW5zaW9uRGF0YVNvdXJjZVtdID0gQXJyYXkuaXNBcnJheShcbiAgICAgICAgdGhpcy51aUtpdFNldHRpbmdzPy5haUZlYXR1cmVzXG4gICAgICApXG4gICAgICAgID8gdGhpcy51aUtpdFNldHRpbmdzPy5haUZlYXR1cmVzXG4gICAgICAgIDogdGhpcy5kZWZhdWx0QUlGZWF0dXJlcztcblxuICAgICAgQ2hhdFNka0V2ZW50SW5pdGlhbGl6ZXIuYXR0YWNoTGlzdGVuZXJzKCk7XG4gICAgICBpZiAoZXh0ZW5zaW9uTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGV4dGVuc2lvbkxpc3QuZm9yRWFjaCgoZXh0ZW5zaW9uOiBFeHRlbnNpb25zRGF0YVNvdXJjZSkgPT4ge1xuICAgICAgICAgIGV4dGVuc2lvbj8uZW5hYmxlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWlGZWF0dXJlc0xpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICBhaUZlYXR1cmVzTGlzdC5mb3JFYWNoKChhaUZlYXR1cmVzOiBBSUV4dGVuc2lvbkRhdGFTb3VyY2UpID0+IHtcbiAgICAgICAgICBhaUZlYXR1cmVzPy5lbmFibGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHN0YXRpYyBhc3luYyBsb2dpbihkZXRhaWxzOiB7XG4gICAgdWlkPzogc3RyaW5nO1xuICAgIGF1dGhUb2tlbj86IHN0cmluZztcbiAgfSk6IFByb21pc2U8T2JqZWN0IHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCFDb21ldENoYXRVSUtpdC5jaGVja0F1dGhTZXR0aW5ncygpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBDb21ldENoYXRVSUtpdC5nZXRMb2dnZWRpblVzZXIoKVxuICAgICAgICA/LnRoZW4oKHVzZXIpID0+IHtcbiAgICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgICAgcmVzb2x2ZSh1c2VyKTtcbiAgICAgICAgICAgIENoYXRDb25maWd1cmF0b3IuaW5pdCgpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWF0ZUFmdGVyTG9naW4oKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGFyZ3M6IGFueVtdID0gZGV0YWlscy51aWRcbiAgICAgICAgICAgICAgPyBbZGV0YWlscy51aWQsIENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MuYXV0aEtleSFdXG4gICAgICAgICAgICAgIDogW2RldGFpbHMuYXV0aFRva2VuXTtcbiAgICAgICAgICAgIENvbWV0Q2hhdC5sb2dpbiguLi5hcmdzKVxuICAgICAgICAgICAgICAudGhlbigodXNlcjogQ29tZXRDaGF0LlVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHVzZXIpO1xuICAgICAgICAgICAgICAgIENoYXRDb25maWd1cmF0b3IuaW5pdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhdGVBZnRlckxvZ2luKCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICBzdGF0aWMgYXN5bmMgY3JlYXRlVXNlcih1c2VyOiBDb21ldENoYXQuVXNlcik6IFByb21pc2U8T2JqZWN0IHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCFDb21ldENoYXRVSUtpdC5jaGVja0F1dGhTZXR0aW5ncygpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBDb21ldENoYXQuY3JlYXRlVXNlcih1c2VyLCBDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzLmF1dGhLZXkhKVxuICAgICAgICAudGhlbigodXNlcjogQ29tZXRDaGF0LlVzZXIpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHVzZXIpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgc3RhdGljIGFzeW5jIHVwZGF0ZVVzZXIodXNlcjogQ29tZXRDaGF0LlVzZXIpOiBQcm9taXNlPE9iamVjdCB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghQ29tZXRDaGF0VUlLaXQuY2hlY2tBdXRoU2V0dGluZ3MoKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgQ29tZXRDaGF0LnVwZGF0ZVVzZXIodXNlciwgQ29tZXRDaGF0VUlLaXQudWlLaXRTZXR0aW5ncy5hdXRoS2V5ISlcbiAgICAgICAgLnRoZW4oKHVzZXI6IENvbWV0Q2hhdC5Vc2VyKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSh1c2VyKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBhc3luYyBsb2dvdXQoKTogUHJvbWlzZTxPYmplY3QgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIUNvbWV0Q2hhdFVJS2l0LmNoZWNrQXV0aFNldHRpbmdzKCkpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIENvbWV0Q2hhdC5sb2dvdXQoKVxuICAgICAgICAudGhlbigobWVzc2FnZTogb2JqZWN0KSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZShtZXNzYWdlKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIC8vIEVycm9yIGhhbmRsaW5nIHRvIGdpdmUgYmV0dGVyIGxvZ3NcbiAgc3RhdGljIGNoZWNrQXV0aFNldHRpbmdzKCk6IGJvb2xlYW4ge1xuICAgIGlmIChDb21ldENoYXRVSUtpdC51aUtpdFNldHRpbmdzID09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKENvbWV0Q2hhdFVJS2l0LnVpS2l0U2V0dGluZ3MuYXBwSWQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIGZvcm0gbWVzc2FnZSBhbmQgZW1pdHMgZXZlbnRzIGJhc2VkIG9uIHRoZSBtZXNzYWdlIHN0YXR1cy5cbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgZm9ybSBtZXNzYWdlIHRvIGJlIHNlbnQuXG4gICAqIEBwYXJhbSBkaXNhYmxlTG9jYWxFdmVudHMgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRvIGRpc2FibGUgbG9jYWwgZXZlbnRzIG9yIG5vdC4gRGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS5cbiAgICovXG4gIHN0YXRpYyBzZW5kRm9ybU1lc3NhZ2UoXG4gICAgbWVzc2FnZTogRm9ybU1lc3NhZ2UsXG4gICAgZGlzYWJsZUxvY2FsRXZlbnRzOiBib29sZWFuID0gZmFsc2VcbiAgKSB7XG4gICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcbiAgICB9XG4gICAgQ29tZXRDaGF0LnNlbmRJbnRlcmFjdGl2ZU1lc3NhZ2UobWVzc2FnZSlcbiAgICAgIC50aGVuKChtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpID0+IHtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLnN1Y2Nlc3MsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIG1lc3NhZ2Uuc2V0TWV0YWRhdGEoeyBlcnJvciB9KTtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmVycm9yLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBzZW5kQ2FyZE1lc3NhZ2UoXG4gICAgbWVzc2FnZTogQ2FyZE1lc3NhZ2UsXG4gICAgZGlzYWJsZUxvY2FsRXZlbnRzOiBib29sZWFuID0gZmFsc2VcbiAgKSB7XG4gICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcbiAgICB9XG4gICAgQ29tZXRDaGF0LnNlbmRJbnRlcmFjdGl2ZU1lc3NhZ2UobWVzc2FnZSlcbiAgICAgIC50aGVuKChtZXNzYWdlOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpID0+IHtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLnN1Y2Nlc3MsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIG1lc3NhZ2Uuc2V0TWV0YWRhdGEoeyBlcnJvciB9KTtcbiAgICAgICAgaWYgKCFkaXNhYmxlTG9jYWxFdmVudHMpIHtcbiAgICAgICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmVycm9yLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBzZW5kQ3VzdG9tSW50ZXJhY3RpdmVNZXNzYWdlKFxuICAgIG1lc3NhZ2U6IEN1c3RvbUludGVyYWN0aXZlTWVzc2FnZSxcbiAgICBkaXNhYmxlTG9jYWxFdmVudHM6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBDb21ldENoYXQuc2VuZEludGVyYWN0aXZlTWVzc2FnZShtZXNzYWdlKVxuICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yIH0pO1xuICAgICAgICBpZiAoIWRpc2FibGVMb2NhbEV2ZW50cykge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZHMgdG8gc2VuZCBtZXNzYWdlc1xuICAvLyBbc2VuZEN1c3RvbU1lc3NhZ2VdIHVzZWQgdG8gc2VuZCBhIGN1c3RvbSBtZXNzYWdlXG4gIHN0YXRpYyBzZW5kQ3VzdG9tTWVzc2FnZShcbiAgICBtZXNzYWdlOiBDb21ldENoYXQuQ3VzdG9tTWVzc2FnZVxuICApOiBQcm9taXNlPENvbWV0Q2hhdC5CYXNlTWVzc2FnZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBDb21ldENoYXRNZXNzYWdlRXZlbnRzLmNjTWVzc2FnZVNlbnQubmV4dCh7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5pbnByb2dyZXNzLFxuICAgICAgfSk7XG4gICAgICBDb21ldENoYXQuc2VuZEN1c3RvbU1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNvbHZlKG1lc3NhZ2UpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yOiB0cnVlIH0pO1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kcyB0byBzZW5kIG1lc3NhZ2VzXG4gIC8vIFtzZW5kVGV4dE1lc3NhZ2VdIHVzZWQgdG8gc2VuZCBhIGN1c3RvbSBtZXNzYWdlXG4gIHN0YXRpYyBzZW5kVGV4dE1lc3NhZ2UoXG4gICAgbWVzc2FnZTogQ29tZXRDaGF0LlRleHRNZXNzYWdlXG4gICk6IFByb21pc2U8Q29tZXRDaGF0LkJhc2VNZXNzYWdlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzLmlucHJvZ3Jlc3MsXG4gICAgICB9KTtcbiAgICAgIENvbWV0Q2hhdC5zZW5kTWVzc2FnZShtZXNzYWdlKVxuICAgICAgICAudGhlbigobWVzc2FnZTogQ29tZXRDaGF0LkJhc2VNZXNzYWdlKSA9PiB7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5zdWNjZXNzLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJlc29sdmUobWVzc2FnZSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IENvbWV0Q2hhdC5Db21ldENoYXRFeGNlcHRpb24pID0+IHtcbiAgICAgICAgICBtZXNzYWdlLnNldE1ldGFkYXRhKHsgZXJyb3I6IHRydWUgfSk7XG4gICAgICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgICAgIHN0YXR1czogTWVzc2FnZVN0YXR1cy5lcnJvcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2RzIHRvIHNlbmQgbWVzc2FnZXNcbiAgLy8gW3NlbmRNZWRpYU1lc3NhZ2VdIHVzZWQgdG8gc2VuZCBhIGN1c3RvbSBtZXNzYWdlXG4gIHN0YXRpYyBzZW5kTWVkaWFNZXNzYWdlKFxuICAgIG1lc3NhZ2U6IENvbWV0Q2hhdC5NZWRpYU1lc3NhZ2VcbiAgKTogUHJvbWlzZTxDb21ldENoYXQuQmFzZU1lc3NhZ2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgQ29tZXRDaGF0TWVzc2FnZUV2ZW50cy5jY01lc3NhZ2VTZW50Lm5leHQoe1xuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuaW5wcm9ncmVzcyxcbiAgICAgIH0pO1xuICAgICAgQ29tZXRDaGF0LnNlbmRNZWRpYU1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkgPT4ge1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuc3VjY2VzcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNvbHZlKG1lc3NhZ2UpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgbWVzc2FnZS5zZXRNZXRhZGF0YSh7IGVycm9yOiB0cnVlIH0pO1xuICAgICAgICAgIENvbWV0Q2hhdE1lc3NhZ2VFdmVudHMuY2NNZXNzYWdlU2VudC5uZXh0KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXMuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class AIExtensionDataSource {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQUlFeHRlbnNpb25EYXRhU291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9TaGFyZWQvRnJhbWV3b3JrL0FJRXh0ZW5zaW9uRGF0YVNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQWdCLHFCQUFxQjtDQUkxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBSUV4dGVuc2lvbkRhdGFTb3VyY2Uge1xuICBhYnN0cmFjdCBhZGRFeHRlbnNpb24oKTogdm9pZDtcbiAgYWJzdHJhY3QgZ2V0RXh0ZW5zaW9uSWQoKTogc3RyaW5nO1xuICBhYnN0cmFjdCBlbmFibGUoKTogdm9pZDtcbn1cbiJdfQ==
|
|
@@ -7,7 +7,7 @@ export class ChatConfigurator {
|
|
|
7
7
|
static enable(callback) {
|
|
8
8
|
let oldSource = this.dataSource;
|
|
9
9
|
let newSource = callback(oldSource);
|
|
10
|
-
if (!this.names.find(nm => nm == newSource.getId())) {
|
|
10
|
+
if (!this.names.find((nm) => nm == newSource.getId())) {
|
|
11
11
|
this.dataSource = newSource;
|
|
12
12
|
this.names.push(this.dataSource.getId());
|
|
13
13
|
}
|
|
@@ -17,4 +17,4 @@ export class ChatConfigurator {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
ChatConfigurator.names = ["message utils"];
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhdENvbmZpZ3VyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvU2hhcmVkL0ZyYW1ld29yay9DaGF0Q29uZmlndXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBMEI7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBZ0Q7UUFDNUQsSUFBSSxTQUFTLEdBQWUsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUM1QyxJQUFJLFNBQVMsR0FBZSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDOztBQWxCTSxzQkFBSyxHQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZVV0aWxzIH0gZnJvbSBcIi4uL1V0aWxzL01lc3NhZ2VVdGlsc1wiO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuL0RhdGFTb3VyY2VcIjtcblxuZXhwb3J0IGNsYXNzIENoYXRDb25maWd1cmF0b3Ige1xuICBzdGF0aWMgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcbiAgc3RhdGljIG5hbWVzOiBBcnJheTxzdHJpbmc+ID0gW1wibWVzc2FnZSB1dGlsc1wiXTtcblxuICBzdGF0aWMgaW5pdChpbml0aWFsU291cmNlPzogRGF0YVNvdXJjZSkge1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGluaXRpYWxTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpO1xuICAgIHRoaXMubmFtZXMucHVzaCh0aGlzLmRhdGFTb3VyY2UuZ2V0SWQoKSk7XG4gIH1cblxuICBzdGF0aWMgZW5hYmxlKGNhbGxiYWNrOiAoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkgPT4gRGF0YVNvdXJjZSkge1xuICAgIGxldCBvbGRTb3VyY2U6IERhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2U7XG4gICAgbGV0IG5ld1NvdXJjZTogRGF0YVNvdXJjZSA9IGNhbGxiYWNrKG9sZFNvdXJjZSk7XG4gICAgaWYgKCF0aGlzLm5hbWVzLmZpbmQoKG5tKSA9PiBubSA9PSBuZXdTb3VyY2UuZ2V0SWQoKSkpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ld1NvdXJjZTtcbiAgICAgIHRoaXMubmFtZXMucHVzaCh0aGlzLmRhdGFTb3VyY2UuZ2V0SWQoKSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldERhdGFTb3VyY2UoKTogRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZTtcbiAgfVxufVxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export class DataSource {
|
|
2
2
|
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvU2hhcmVkL0ZyYW1ld29yay9EYXRhU291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE1BQU0sT0FBZ0IsVUFBVTtDQW9GL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21ldENoYXRBY3Rpb25zVmlldyxcbiAgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uLFxuICBDb21ldENoYXRNZXNzYWdlT3B0aW9uLFxuICBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUsXG4gIENvbWV0Q2hhdFRoZW1lLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gXCJAY29tZXRjaGF0L2NoYXQtc2RrLWphdmFzY3JpcHRcIjtcbmltcG9ydCB7IENvbXBvc2VySWQgfSBmcm9tIFwiLi4vVXRpbHMvTWVzc2FnZVV0aWxzXCI7XG5pbXBvcnQgeyBBSU9wdGlvbnNTdHlsZSB9IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZFwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YVNvdXJjZSB7XG4gIGFic3RyYWN0IGdldFRleHRNZXNzYWdlT3B0aW9ucyhcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSxcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWUsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgKTogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj47XG4gIGFic3RyYWN0IGdldEltYWdlTWVzc2FnZU9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+O1xuICBhYnN0cmFjdCBnZXRWaWRlb01lc3NhZ2VPcHRpb25zKFxuICAgIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsXG4gICAgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLFxuICAgIHRoZW1lOiBDb21ldENoYXRUaGVtZSxcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cFxuICApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlT3B0aW9uPjtcbiAgYWJzdHJhY3QgZ2V0QXVkaW9NZXNzYWdlT3B0aW9ucyhcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSxcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWUsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgKTogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj47XG4gIGFic3RyYWN0IGdldEZpbGVNZXNzYWdlT3B0aW9ucyhcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSxcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWUsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgKTogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj47XG4gIGFic3RyYWN0IGdldFRleHRNZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlO1xuICBhYnN0cmFjdCBnZXRJbWFnZU1lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGU7XG4gIGFic3RyYWN0IGdldFZpZGVvTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZTtcbiAgYWJzdHJhY3QgZ2V0QXVkaW9NZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlO1xuICBhYnN0cmFjdCBnZXRGaWxlTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZTtcbiAgYWJzdHJhY3QgZ2V0R3JvdXBBY3Rpb25UZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGU7XG4gIGFic3RyYWN0IGdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoXG4gICAgdGhlbWU/OiBDb21ldENoYXRUaGVtZVxuICApOiBBcnJheTxDb21ldENoYXRNZXNzYWdlVGVtcGxhdGU+O1xuICBhYnN0cmFjdCBnZXRNZXNzYWdlVGVtcGxhdGUoXG4gICAgbWVzc2FnZVR5cGU6IHN0cmluZyxcbiAgICBtZXNzYWdlQ2F0ZWdvcnk6IHN0cmluZ1xuICApOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUgfCBudWxsO1xuICBhYnN0cmFjdCBnZXRNZXNzYWdlT3B0aW9ucyhcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSxcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWUsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgKTogQXJyYXk8Q29tZXRDaGF0TWVzc2FnZU9wdGlvbj47XG4gIGFic3RyYWN0IGdldENvbW1vbk9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IEFycmF5PENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24+O1xuICBhYnN0cmFjdCBnZXRBdHRhY2htZW50T3B0aW9ucyhcbiAgICB0aGVtZT86IENvbWV0Q2hhdFRoZW1lLFxuICAgIHVzZXI/OiBDb21ldENoYXQuVXNlcixcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cCxcbiAgICBpZD86IENvbXBvc2VySWRcbiAgKTogYW55O1xuICBhYnN0cmFjdCBnZXRBbGxNZXNzYWdlVHlwZXMoKTogQXJyYXk8c3RyaW5nPjtcbiAgYWJzdHJhY3QgZ2V0QWxsTWVzc2FnZUNhdGVnb3JpZXMoKTogQXJyYXk8c3RyaW5nPjtcbiAgYWJzdHJhY3QgZ2V0QXV4aWxpYXJ5T3B0aW9ucyhcbiAgICBpZDogQ29tcG9zZXJJZCxcbiAgICB1c2VyPzogQ29tZXRDaGF0LlVzZXIsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgKTogYW55O1xuICBhYnN0cmFjdCBnZXRJZCgpOiBzdHJpbmc7XG4gIGFic3RyYWN0IGdldExhc3RDb252ZXJzYXRpb25NZXNzYWdlKFxuICAgIGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbixcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyXG4gICk6IHN0cmluZztcbiAgYWJzdHJhY3QgZ2V0RGVsZXRlT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb247XG4gIGFic3RyYWN0IGdldFJlcGx5SW5UaHJlYWRPcHRpb24oXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lXG4gICk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb247XG4gIGFic3RyYWN0IGdldEVkaXRPcHRpb24odGhlbWU6IENvbWV0Q2hhdFRoZW1lKTogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbjtcbiAgYWJzdHJhY3QgZ2V0QUlPcHRpb25zKFxuICAgIHRoZW1lOiBDb21ldENoYXRUaGVtZSxcbiAgICBpZD86IE1hcDxTdHJpbmcsIGFueT4sXG4gICAgYWlPcHRpb25zU3R5bGVzPzogQUlPcHRpb25zU3R5bGVcbiAgKTogKENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiB8IENvbWV0Q2hhdEFjdGlvbnNWaWV3KVtdO1xufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CometChatTheme } from "@cometchat/uikit-resources";
|
|
1
|
+
import { CometChatTheme, } from "@cometchat/uikit-resources";
|
|
2
2
|
import { MessageUtils } from "../Utils/MessageUtils";
|
|
3
3
|
export class DataSourceDecorator {
|
|
4
4
|
constructor(dataSource) {
|
|
@@ -76,5 +76,8 @@ export class DataSourceDecorator {
|
|
|
76
76
|
getLastConversationMessage(conversation, loggedInUser) {
|
|
77
77
|
return (this.dataSource ?? new MessageUtils()).getLastConversationMessage(conversation, loggedInUser);
|
|
78
78
|
}
|
|
79
|
+
getAIOptions(theme, id, aiOptionsStyles) {
|
|
80
|
+
return (this.dataSource ?? new MessageUtils()).getAIOptions(theme, id, aiOptionsStyles);
|
|
81
|
+
}
|
|
79
82
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVNvdXJjZURlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvU2hhcmVkL0ZyYW1ld29yay9EYXRhU291cmNlRGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0QsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHOUcsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLE1BQU0sT0FBZ0IsbUJBQW1CO0lBRXJDLFlBQVksVUFBc0I7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUU7SUFDbEMsQ0FBQztJQUNLLHFCQUFxQixDQUFDLFlBQTRCLEVBQUUsYUFBb0MsRUFBRSxLQUFxQixFQUFFLEtBQXVCO1FBQzFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksWUFBWSxFQUFFLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBQ0ssc0JBQXNCLENBQUMsWUFBNEIsRUFBRSxhQUFvQyxFQUFFLEtBQXFCLEVBQUUsS0FBdUI7UUFDM0ksT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JILENBQUM7SUFDSyxzQkFBc0IsQ0FBQyxZQUE0QixFQUFFLGFBQW9DLEVBQUUsS0FBcUIsRUFBRSxLQUF1QjtRQUMzSSxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENB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SSxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUMsMEJBQTBCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzFHLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24sIENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSwgQ29tZXRDaGF0VGhlbWUgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi9EYXRhU291cmNlXCI7XG5pbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tIFwiQGNvbWV0Y2hhdC9jaGF0LXNkay1qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBNZXNzYWdlVXRpbHMsQ29tcG9zZXJJZCB9IGZyb20gXCIuLi9VdGlscy9NZXNzYWdlVXRpbHNcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFTb3VyY2VEZWNvcmF0b3IgaW1wbGVtZW50cyBEYXRhU291cmNlIHtcbiAgICBwdWJsaWMgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcbiAgICBjb25zdHJ1Y3RvcihkYXRhU291cmNlOiBEYXRhU291cmNlKSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2UgO1xuICAgIH1cbiAgIHB1YmxpYyBnZXRUZXh0TWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlciwgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLCB0aGVtZTogQ29tZXRDaGF0VGhlbWUsIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwKTogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRUZXh0TWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApO1xuICAgIH1cbiAgIHB1YmxpYyBnZXRJbWFnZU1lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb25bXSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0SW1hZ2VNZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXIsIG1lc3NhZ2VPYmplY3QsIHRoZW1lLCBncm91cCk7XG4gICAgfVxuICAgcHVibGljIGdldFZpZGVvTWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlciwgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLCB0aGVtZTogQ29tZXRDaGF0VGhlbWUsIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwKTogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRWaWRlb01lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKTtcbiAgICB9XG4gICBwdWJsaWMgZ2V0QXVkaW9NZXNzYWdlT3B0aW9ucyhsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApOiBDb21ldENoYXRNZXNzYWdlT3B0aW9uW10ge1xuICAgICAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldEF1ZGlvTWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApO1xuICAgIH1cbiAgIHB1YmxpYyBnZXRGaWxlTWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlciwgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLCB0aGVtZTogQ29tZXRDaGF0VGhlbWUsIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwKTogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRGaWxlTWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApO1xuICAgIH1cbiAgIHB1YmxpYyBnZXRUZXh0TWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0VGV4dE1lc3NhZ2VUZW1wbGF0ZSgpO1xuICAgIH1cbiAgIHB1YmxpYyBnZXRJbWFnZU1lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUge1xuICAgICAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldEltYWdlTWVzc2FnZVRlbXBsYXRlKCk7XG4gICAgfVxuICAgcHVibGljIGdldFZpZGVvTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0VmlkZW9NZXNzYWdlVGVtcGxhdGUoKTtcbiAgICB9XG4gICBwdWJsaWMgZ2V0QXVkaW9NZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRBdWRpb01lc3NhZ2VUZW1wbGF0ZSgpO1xuICAgIH1cbiAgIHB1YmxpYyBnZXRGaWxlTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0RmlsZU1lc3NhZ2VUZW1wbGF0ZSgpO1xuICAgIH1cbiAgIHB1YmxpYyBnZXRHcm91cEFjdGlvblRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0R3JvdXBBY3Rpb25UZW1wbGF0ZSgpO1xuICAgIH1cbiAgIHB1YmxpYyBnZXRBbGxNZXNzYWdlVGVtcGxhdGVzKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZVtdIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRBbGxNZXNzYWdlVGVtcGxhdGVzKCk7XG4gICAgfVxuICAgcHVibGljIGdldE1lc3NhZ2VUZW1wbGF0ZShtZXNzYWdlVHlwZTogc3RyaW5nLCBtZXNzYWdlQ2F0ZWdvcnk6IHN0cmluZyk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldE1lc3NhZ2VUZW1wbGF0ZShtZXNzYWdlVHlwZSwgbWVzc2FnZUNhdGVnb3J5KTtcbiAgICB9XG4gICAgcHVibGljIGdldE1lc3NhZ2VPcHRpb25zKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb25bXSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0TWVzc2FnZU9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApO1xuICAgICAgfVxuXG4gICBwdWJsaWMgZ2V0Q29tbW9uT3B0aW9ucyhsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApOiBDb21ldENoYXRNZXNzYWdlT3B0aW9uW10ge1xuICAgICAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldENvbW1vbk9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0RGVsZXRlT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgICAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldERlbGV0ZU9wdGlvbih0aGVtZSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXRSZXBseUluVGhyZWFkT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb257XG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0UmVwbHlJblRocmVhZE9wdGlvbih0aGVtZSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXRFZGl0T3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb257XG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0RWRpdE9wdGlvbih0aGVtZSk7XG4gICAgfVxuICAgcHVibGljIGdldEF0dGFjaG1lbnRPcHRpb25zKHRoZW1lOiBDb21ldENoYXRUaGVtZSA9IG5ldyBDb21ldENoYXRUaGVtZSh7fSksdXNlcj86Q29tZXRDaGF0LlVzZXIsZ3JvdXA/OkNvbWV0Q2hhdC5Hcm91cCwgaWQ/OiBDb21wb3NlcklkKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0QXR0YWNobWVudE9wdGlvbnModGhlbWUsdXNlcixncm91cCwgaWQpO1xuICAgIH1cbiAgIHB1YmxpYyBnZXRBbGxNZXNzYWdlVHlwZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldEFsbE1lc3NhZ2VUeXBlcygpO1xuICAgIH1cbiAgIHB1YmxpYyBnZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0QWxsTWVzc2FnZUNhdGVnb3JpZXMoKTtcbiAgICB9XG4gICBwdWJsaWMgZ2V0QXV4aWxpYXJ5T3B0aW9ucyhpZDogQ29tcG9zZXJJZCwgdXNlcj86IENvbWV0Q2hhdC5Vc2VyLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk6IGFueSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0QXV4aWxpYXJ5T3B0aW9ucyhpZCwgdXNlciwgZ3JvdXApO1xuICAgIH1cbiAgIHB1YmxpYyBnZXRJZCgpOiBzdHJpbmcge1xuXG4gICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0SWQoKTtcbiAgICB9XG4gICBwdWJsaWMgZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uLCBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyKTogc3RyaW5ne1xuICAgICAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldExhc3RDb252ZXJzYXRpb25NZXNzYWdlKGNvbnZlcnNhdGlvbiwgbG9nZ2VkSW5Vc2VyKTtcbiAgICB9XG59Il19
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVNvdXJjZURlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvU2hhcmVkL0ZyYW1ld29yay9EYXRhU291cmNlRGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLTCxjQUFjLEdBQ2YsTUFBTSw0QkFBNEIsQ0FBQztBQUdwQyxPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sdUJBQXVCLENBQUM7QUFHakUsTUFBTSxPQUFnQixtQkFBbUI7SUFFdkMsWUFBWSxVQUFzQjtRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBQ00scUJBQXFCLENBQzFCLFlBQTRCLEVBQzVCLGFBQW9DLEVBQ3BDLEtBQXFCLEVBQ3JCLEtBQXVCO1FBRXZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksWUFBWSxFQUFFLENBQUMsQ0FBQyxxQkFBcUIsQ0FDbEUsWUFBWSxFQUNaLGFBQWEsRUFDYixLQUFLLEVBQ0wsS0FBSyxDQUNOLENBQUM7SUFDSixDQUFDO0lBQ00sc0JBQXNCLENBQzNCLFlBQTRCLEVBQzVCLGFBQW9DLEVBQ3BDLEtBQXFCLEVBQ3JCLEtBQXVCO1FBRXZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksWUFBWSxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsQ0FDbkUsWUFBWSxFQUNaLGFBQWEsRUFDYixLQUFLLEVBQ0wsS0FBSyxDQUNOLENBQUM7SUFDSixDQUFDO0lBQ00sc0JBQXNCLENBQzNCLFlBQTRCLEVBQzVCLGFBQW9DLEVBQ3BDLEtBQXFCLEVBQ3JCLEtBQXVCO1FBRXZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksWUFBWSxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsQ0FDbkUsWUFBWSxFQUNaLGFBQWEsRUFDYixLQUFLLEVBQ0ws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NEI7UUFFNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQixDQUN2RSxZQUFZLEVBQ1osWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRU0sWUFBWSxDQUNqQixLQUFxQixFQUNyQixFQUFxQixFQUNyQixlQUFnQztRQUVoQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUN6RCxLQUFLLEVBQ0wsRUFBRSxFQUNGLGVBQWUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbWV0Q2hhdEFjdGlvbnNWaWV3LFxuICBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24sXG4gIENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24sXG4gIENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSxcbiAgQ29tZXRDaGF0VGhlbWUsXG59IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXJlc291cmNlc1wiO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuL0RhdGFTb3VyY2VcIjtcbmltcG9ydCB7IENvbWV0Q2hhdCB9IGZyb20gXCJAY29tZXRjaGF0L2NoYXQtc2RrLWphdmFzY3JpcHRcIjtcbmltcG9ydCB7IE1lc3NhZ2VVdGlscywgQ29tcG9zZXJJZCB9IGZyb20gXCIuLi9VdGlscy9NZXNzYWdlVXRpbHNcIjtcbmltcG9ydCB7IEFJT3B0aW9uc1N0eWxlIH0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRhU291cmNlRGVjb3JhdG9yIGltcGxlbWVudHMgRGF0YVNvdXJjZSB7XG4gIHB1YmxpYyBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuICBjb25zdHJ1Y3RvcihkYXRhU291cmNlOiBEYXRhU291cmNlKSB7XG4gICAgdGhpcy5kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgfVxuICBwdWJsaWMgZ2V0VGV4dE1lc3NhZ2VPcHRpb25zKFxuICAgIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsXG4gICAgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLFxuICAgIHRoZW1lOiBDb21ldENoYXRUaGVtZSxcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cFxuICApOiBDb21ldENoYXRNZXNzYWdlT3B0aW9uW10ge1xuICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0VGV4dE1lc3NhZ2VPcHRpb25zKFxuICAgICAgbG9nZ2VkSW5Vc2VyLFxuICAgICAgbWVzc2FnZU9iamVjdCxcbiAgICAgIHRoZW1lLFxuICAgICAgZ3JvdXBcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXRJbWFnZU1lc3NhZ2VPcHRpb25zKFxuICAgIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsXG4gICAgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLFxuICAgIHRoZW1lOiBDb21ldENoYXRUaGVtZSxcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cFxuICApOiBDb21ldENoYXRNZXNzYWdlT3B0aW9uW10ge1xuICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0SW1hZ2VNZXNzYWdlT3B0aW9ucyhcbiAgICAgIGxvZ2dlZEluVXNlcixcbiAgICAgIG1lc3NhZ2VPYmplY3QsXG4gICAgICB0aGVtZSxcbiAgICAgIGdyb3VwXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0VmlkZW9NZXNzYWdlT3B0aW9ucyhcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSxcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWUsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgKTogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbltdIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldFZpZGVvTWVzc2FnZU9wdGlvbnMoXG4gICAgICBsb2dnZWRJblVzZXIsXG4gICAgICBtZXNzYWdlT2JqZWN0LFxuICAgICAgdGhlbWUsXG4gICAgICBncm91cFxuICAgICk7XG4gIH1cbiAgcHVibGljIGdldEF1ZGlvTWVzc2FnZU9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb25bXSB7XG4gICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRBdWRpb01lc3NhZ2VPcHRpb25zKFxuICAgICAgbG9nZ2VkSW5Vc2VyLFxuICAgICAgbWVzc2FnZU9iamVjdCxcbiAgICAgIHRoZW1lLFxuICAgICAgZ3JvdXBcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXRGaWxlTWVzc2FnZU9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb25bXSB7XG4gICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRGaWxlTWVzc2FnZU9wdGlvbnMoXG4gICAgICBsb2dnZWRJblVzZXIsXG4gICAgICBtZXNzYWdlT2JqZWN0LFxuICAgICAgdGhlbWUsXG4gICAgICBncm91cFxuICAgICk7XG4gIH1cbiAgcHVibGljIGdldFRleHRNZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldFRleHRNZXNzYWdlVGVtcGxhdGUoKTtcbiAgfVxuICBwdWJsaWMgZ2V0SW1hZ2VNZXNzYWdlVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldEltYWdlTWVzc2FnZVRlbXBsYXRlKCk7XG4gIH1cbiAgcHVibGljIGdldFZpZGVvTWVzc2FnZVRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRWaWRlb01lc3NhZ2VUZW1wbGF0ZSgpO1xuICB9XG4gIHB1YmxpYyBnZXRBdWRpb01lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUge1xuICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0QXVkaW9NZXNzYWdlVGVtcGxhdGUoKTtcbiAgfVxuICBwdWJsaWMgZ2V0RmlsZU1lc3NhZ2VUZW1wbGF0ZSgpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUge1xuICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0RmlsZU1lc3NhZ2VUZW1wbGF0ZSgpO1xuICB9XG4gIHB1YmxpYyBnZXRHcm91cEFjdGlvblRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRHcm91cEFjdGlvblRlbXBsYXRlKCk7XG4gIH1cbiAgcHVibGljIGdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10ge1xuICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0QWxsTWVzc2FnZVRlbXBsYXRlcygpO1xuICB9XG4gIHB1YmxpYyBnZXRNZXNzYWdlVGVtcGxhdGUoXG4gICAgbWVzc2FnZVR5cGU6IHN0cmluZyxcbiAgICBtZXNzYWdlQ2F0ZWdvcnk6IHN0cmluZ1xuICApOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldE1lc3NhZ2VUZW1wbGF0ZShcbiAgICAgIG1lc3NhZ2VUeXBlLFxuICAgICAgbWVzc2FnZUNhdGVnb3J5XG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0TWVzc2FnZU9wdGlvbnMoXG4gICAgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcixcbiAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLFxuICAgIGdyb3VwPzogQ29tZXRDaGF0Lkdyb3VwXG4gICk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb25bXSB7XG4gICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRNZXNzYWdlT3B0aW9ucyhcbiAgICAgIGxvZ2dlZEluVXNlcixcbiAgICAgIG1lc3NhZ2VPYmplY3QsXG4gICAgICB0aGVtZSxcbiAgICAgIGdyb3VwXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb21tb25PcHRpb25zKFxuICAgIGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsXG4gICAgbWVzc2FnZU9iamVjdDogQ29tZXRDaGF0LkJhc2VNZXNzYWdlLFxuICAgIHRoZW1lOiBDb21ldENoYXRUaGVtZSxcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cFxuICApOiBDb21ldENoYXRNZXNzYWdlT3B0aW9uW10ge1xuICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0Q29tbW9uT3B0aW9ucyhcbiAgICAgIGxvZ2dlZEluVXNlcixcbiAgICAgIG1lc3NhZ2VPYmplY3QsXG4gICAgICB0aGVtZSxcbiAgICAgIGdyb3VwXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0RGVsZXRlT3B0aW9uKHRoZW1lOiBDb21ldENoYXRUaGVtZSk6IENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24ge1xuICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0RGVsZXRlT3B0aW9uKHRoZW1lKTtcbiAgfVxuICBwdWJsaWMgZ2V0UmVwbHlJblRocmVhZE9wdGlvbih0aGVtZTogQ29tZXRDaGF0VGhlbWUpOiBDb21ldENoYXRNZXNzYWdlT3B0aW9uIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldFJlcGx5SW5UaHJlYWRPcHRpb24oXG4gICAgICB0aGVtZVxuICAgICk7XG4gIH1cbiAgcHVibGljIGdldEVkaXRPcHRpb24odGhlbWU6IENvbWV0Q2hhdFRoZW1lKTogQ29tZXRDaGF0TWVzc2FnZU9wdGlvbiB7XG4gICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRFZGl0T3B0aW9uKHRoZW1lKTtcbiAgfVxuICBwdWJsaWMgZ2V0QXR0YWNobWVudE9wdGlvbnMoXG4gICAgdGhlbWU6IENvbWV0Q2hhdFRoZW1lID0gbmV3IENvbWV0Q2hhdFRoZW1lKHt9KSxcbiAgICB1c2VyPzogQ29tZXRDaGF0LlVzZXIsXG4gICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXAsXG4gICAgaWQ/OiBDb21wb3NlcklkXG4gICkge1xuICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0QXR0YWNobWVudE9wdGlvbnMoXG4gICAgICB0aGVtZSxcbiAgICAgIHVzZXIsXG4gICAgICBncm91cCxcbiAgICAgIGlkXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0QWxsTWVzc2FnZVR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldEFsbE1lc3NhZ2VUeXBlcygpO1xuICB9XG4gIHB1YmxpYyBnZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpO1xuICB9XG4gIHB1YmxpYyBnZXRBdXhpbGlhcnlPcHRpb25zKFxuICAgIGlkOiBDb21wb3NlcklkLFxuICAgIHVzZXI/OiBDb21ldENoYXQuVXNlcixcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cFxuICApOiBhbnkge1xuICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlID8/IG5ldyBNZXNzYWdlVXRpbHMoKSkuZ2V0QXV4aWxpYXJ5T3B0aW9ucyhcbiAgICAgIGlkLFxuICAgICAgdXNlcixcbiAgICAgIGdyb3VwXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldElkKCk7XG4gIH1cbiAgcHVibGljIGdldExhc3RDb252ZXJzYXRpb25NZXNzYWdlKFxuICAgIGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbixcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmRhdGFTb3VyY2UgPz8gbmV3IE1lc3NhZ2VVdGlscygpKS5nZXRMYXN0Q29udmVyc2F0aW9uTWVzc2FnZShcbiAgICAgIGNvbnZlcnNhdGlvbixcbiAgICAgIGxvZ2dlZEluVXNlclxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QUlPcHRpb25zKFxuICAgIHRoZW1lOiBDb21ldENoYXRUaGVtZSxcbiAgICBpZD86IE1hcDxTdHJpbmcsIGFueT4sXG4gICAgYWlPcHRpb25zU3R5bGVzPzogQUlPcHRpb25zU3R5bGVcbiAgKTogKENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiB8IENvbWV0Q2hhdEFjdGlvbnNWaWV3KVtdIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSA/PyBuZXcgTWVzc2FnZVV0aWxzKCkpLmdldEFJT3B0aW9ucyhcbiAgICAgIHRoZW1lLFxuICAgICAgaWQsXG4gICAgICBhaU9wdGlvbnNTdHlsZXNcbiAgICApO1xuICB9XG59XG4iXX0=
|