@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
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { CometChat } from "@cometchat/chat-sdk-javascript";
|
|
2
|
+
import { Component, ChangeDetectionStrategy, Input, ViewChild, } from "@angular/core";
|
|
3
|
+
import { AvatarStyle, } from "@cometchat/uikit-elements";
|
|
4
|
+
import { localize, MessageListAlignment, MessageBubbleAlignment, CometChatUIKitConstants, CometChatUIEvents, fontHelper, DatePatterns, Receipts, } from "@cometchat/uikit-resources";
|
|
5
|
+
import { CometChatUIKitUtility, } from "@cometchat/uikit-shared";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "./../../../../CometChatTheme.service";
|
|
8
|
+
import * as i2 from "../../../../CometChatList/cometchat-list.component";
|
|
9
|
+
import * as i3 from "../../../../CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component";
|
|
10
|
+
import * as i4 from "@angular/common";
|
|
11
|
+
export class AIAssistBotMessageListComponent {
|
|
12
|
+
constructor(ref, themeService) {
|
|
13
|
+
this.ref = ref;
|
|
14
|
+
this.themeService = themeService;
|
|
15
|
+
this.messagesList = [];
|
|
16
|
+
this.botMessagesList = [];
|
|
17
|
+
this.hideSearch = true;
|
|
18
|
+
this.subtitleText = localize("COMETCHAT_ASK_BOT_SUBTITLE");
|
|
19
|
+
this.sendIconUrl = "assets/Send.svg";
|
|
20
|
+
this.waitIcon = "assets/wait.svg";
|
|
21
|
+
this.errorIcon = "assets/warning-small.svg";
|
|
22
|
+
this.botFirstMessageText = localize("COMETCHAT_BOT_FIRST_MESSAGE");
|
|
23
|
+
this.closeButtonIconURL = "assets/close2x.svg";
|
|
24
|
+
this.sendButtonIconURL = "assets/Send.svg";
|
|
25
|
+
this.avatarStyle = {
|
|
26
|
+
borderRadius: "16px",
|
|
27
|
+
width: "28px",
|
|
28
|
+
height: "28px",
|
|
29
|
+
};
|
|
30
|
+
this.aiBotChatHeaderStyle = {
|
|
31
|
+
backGround: "rgba(20, 20, 20, 0.15)",
|
|
32
|
+
};
|
|
33
|
+
this.aiBotChatContainerStyle = {
|
|
34
|
+
backGround: "rgba(255,255,255)",
|
|
35
|
+
};
|
|
36
|
+
this.datePattern = DatePatterns.time;
|
|
37
|
+
this.bubbleDateStyle = {};
|
|
38
|
+
this.messageTemplate = [];
|
|
39
|
+
this.alignment = MessageListAlignment.standard;
|
|
40
|
+
this.receipts = Receipts.wait;
|
|
41
|
+
this.currentMessageObject = null;
|
|
42
|
+
this.typesMap = {};
|
|
43
|
+
this.messageTypesMap = {};
|
|
44
|
+
this.messageInputStyle = {
|
|
45
|
+
width: "98%",
|
|
46
|
+
dividerColor: "transparent",
|
|
47
|
+
background: "transparent",
|
|
48
|
+
border: "2px solid red transparent",
|
|
49
|
+
};
|
|
50
|
+
this.sendButtonStyle = {
|
|
51
|
+
height: "24px",
|
|
52
|
+
width: "24px",
|
|
53
|
+
border: "none",
|
|
54
|
+
borderRadius: "0",
|
|
55
|
+
background: "transparent",
|
|
56
|
+
buttonIconTint: this.themeService.theme.palette.getPrimary(),
|
|
57
|
+
};
|
|
58
|
+
this.messageInputChanged = (event) => {
|
|
59
|
+
const text = event?.detail?.value?.trim();
|
|
60
|
+
this.inputValue = text;
|
|
61
|
+
};
|
|
62
|
+
this.closeButtonStyle = {
|
|
63
|
+
height: "24px",
|
|
64
|
+
width: "24px",
|
|
65
|
+
border: "none",
|
|
66
|
+
borderRadius: "0",
|
|
67
|
+
background: "transparent",
|
|
68
|
+
buttonIconTint: this.themeService.theme.palette.getPrimary(),
|
|
69
|
+
};
|
|
70
|
+
this.labelStyle = {
|
|
71
|
+
textFont: "400 11px Inter",
|
|
72
|
+
textColor: "grey",
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
ngOnInit() {
|
|
76
|
+
this.setAvatarStyle();
|
|
77
|
+
this.setAiBotChatHeader();
|
|
78
|
+
this.setAiBotChatContainerStyle();
|
|
79
|
+
let receiverId = this.user
|
|
80
|
+
? this.user?.getUid()
|
|
81
|
+
: this.group?.getGuid();
|
|
82
|
+
let receiverType = this.user
|
|
83
|
+
? CometChatUIKitConstants.MessageReceiverType.user
|
|
84
|
+
: CometChatUIKitConstants.MessageReceiverType.group;
|
|
85
|
+
let firstMessage = new CometChat.TextMessage(this.currentAskAIBot?.id, this.botFirstMessageText, receiverType);
|
|
86
|
+
firstMessage.setSentAt(CometChatUIKitUtility.getUnixTimestamp());
|
|
87
|
+
this.botMessagesList.push(firstMessage);
|
|
88
|
+
CometChat.getLoggedinUser()
|
|
89
|
+
.then((user) => {
|
|
90
|
+
this.loggedInUser = user;
|
|
91
|
+
})
|
|
92
|
+
.catch((error) => {
|
|
93
|
+
if (this.onError) {
|
|
94
|
+
this.onError(error);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
this.setMessagesStyle();
|
|
98
|
+
this.subscribeToEvents();
|
|
99
|
+
}
|
|
100
|
+
setAvatarStyle() {
|
|
101
|
+
let defaultStyle = new AvatarStyle({
|
|
102
|
+
borderRadius: "24px",
|
|
103
|
+
width: "28px",
|
|
104
|
+
height: "28px",
|
|
105
|
+
border: `1px solid ${this.themeService.theme.palette.getAccent200()}`,
|
|
106
|
+
backgroundColor: this.themeService.theme.palette.getAccent700(),
|
|
107
|
+
nameTextColor: this.themeService.theme.palette.getAccent900(),
|
|
108
|
+
backgroundSize: "cover",
|
|
109
|
+
nameTextFont: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
110
|
+
outerViewBorderSpacing: "",
|
|
111
|
+
});
|
|
112
|
+
this.avatarStyle = { ...defaultStyle, ...this.avatarStyle };
|
|
113
|
+
}
|
|
114
|
+
setAiBotChatHeader() {
|
|
115
|
+
let defaultStyle = {
|
|
116
|
+
display: "flex",
|
|
117
|
+
justifyContent: "space-between",
|
|
118
|
+
alignItems: "center",
|
|
119
|
+
padding: "10px",
|
|
120
|
+
height: "40px",
|
|
121
|
+
background: this.themeService.theme?.palette.getAccent200(),
|
|
122
|
+
};
|
|
123
|
+
this.aiBotChatHeaderStyle = {
|
|
124
|
+
...defaultStyle,
|
|
125
|
+
...this.aiBotChatHeaderStyle,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
setAiBotChatContainerStyle() {
|
|
129
|
+
let defaultStyle = {
|
|
130
|
+
background: this.themeService.theme.palette.getBackground(),
|
|
131
|
+
};
|
|
132
|
+
this.aiBotChatContainerStyle = {
|
|
133
|
+
...defaultStyle,
|
|
134
|
+
...this.aiBotChatContainerStyle,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
ngOnDestroy() {
|
|
138
|
+
this.unSubscribeToEvent();
|
|
139
|
+
}
|
|
140
|
+
subscribeToEvents() {
|
|
141
|
+
this.ccChatChanged = CometChatUIEvents.ccActiveChatChanged.subscribe(() => {
|
|
142
|
+
CometChatUIEvents.ccShowPanel.next({
|
|
143
|
+
child: { showBotView: false },
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
unSubscribeToEvent() {
|
|
148
|
+
this.ccChatChanged?.unsubscribe();
|
|
149
|
+
}
|
|
150
|
+
onError(error) {
|
|
151
|
+
throw new Error("Method not implemented.");
|
|
152
|
+
}
|
|
153
|
+
generateRandomString(length) {
|
|
154
|
+
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
155
|
+
let randomString = "";
|
|
156
|
+
for (let i = 0; i < length; i++) {
|
|
157
|
+
const randomIndex = Math.floor(Math.random() * characters.length);
|
|
158
|
+
randomString += characters.charAt(randomIndex);
|
|
159
|
+
}
|
|
160
|
+
return randomString;
|
|
161
|
+
}
|
|
162
|
+
handleClick() {
|
|
163
|
+
this.receipts = Receipts.wait;
|
|
164
|
+
let receiverId = this.user
|
|
165
|
+
? this.user?.getUid()
|
|
166
|
+
: this.group?.getGuid();
|
|
167
|
+
let receiverType = this.user
|
|
168
|
+
? CometChatUIKitConstants.MessageReceiverType.user
|
|
169
|
+
: CometChatUIKitConstants.MessageReceiverType.group;
|
|
170
|
+
let botUid = this.currentAskAIBot?.id;
|
|
171
|
+
let question = this.inputValue;
|
|
172
|
+
this.inputRef?.nativeElement?.emptyInputField();
|
|
173
|
+
let query = new CometChat.TextMessage(this.loggedInUser.getUid(), question, receiverType);
|
|
174
|
+
// Generate a random string for the message ID
|
|
175
|
+
let randomString = this.generateRandomString(10); // Specify the desired length
|
|
176
|
+
// Convert the random string to a number (may not be the best practice)
|
|
177
|
+
let randomStringAsNumber = parseInt(randomString, 36); // 36 is the radix for alphanumeric characters
|
|
178
|
+
query.setId(randomStringAsNumber);
|
|
179
|
+
query.setSentAt(CometChatUIKitUtility.getUnixTimestamp());
|
|
180
|
+
this.currentMessageObject = query;
|
|
181
|
+
if (question.trim().length > 0) {
|
|
182
|
+
this.botMessagesList.push(query);
|
|
183
|
+
CometChat.askBot(receiverId, receiverType, botUid, question)
|
|
184
|
+
.then((response) => {
|
|
185
|
+
return response;
|
|
186
|
+
})
|
|
187
|
+
.then((messageText) => {
|
|
188
|
+
this.inputValue = "";
|
|
189
|
+
this.receipts = null;
|
|
190
|
+
let answer = new CometChat.TextMessage(botUid, messageText, receiverType);
|
|
191
|
+
answer.setSentAt(CometChatUIKitUtility.getUnixTimestamp());
|
|
192
|
+
this.botMessagesList.push(answer);
|
|
193
|
+
this.ref.detectChanges();
|
|
194
|
+
})
|
|
195
|
+
.catch((error) => {
|
|
196
|
+
this.receipts = Receipts.error;
|
|
197
|
+
console.error("error", error);
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
setMessageBubbleStyle(msg) {
|
|
202
|
+
let style;
|
|
203
|
+
if (msg.getReceiverId() !== this.loggedInUser?.getUid()) {
|
|
204
|
+
style = {
|
|
205
|
+
background: this.themeService.theme.palette.getAccent100(),
|
|
206
|
+
borderRadius: "12px",
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
style = {
|
|
211
|
+
background: this.themeService.theme.palette.getPrimary(),
|
|
212
|
+
borderRadius: "12px",
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
return style;
|
|
216
|
+
}
|
|
217
|
+
getBubbleAlignment(message) {
|
|
218
|
+
return message.getReceiverId() !== this.loggedInUser?.getUid()
|
|
219
|
+
? MessageBubbleAlignment.left
|
|
220
|
+
: MessageBubbleAlignment.right;
|
|
221
|
+
}
|
|
222
|
+
onCloseDetails() {
|
|
223
|
+
CometChatUIEvents.ccShowPanel.next({
|
|
224
|
+
child: { showBotView: false },
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
setMessagesStyle() {
|
|
228
|
+
this.bubbleDateStyle = {
|
|
229
|
+
textColor: this.themeService.theme.palette.getAccent600(),
|
|
230
|
+
textFont: fontHelper(this.themeService.theme.typography.caption2),
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
getBotTitleStyle() {
|
|
234
|
+
return {
|
|
235
|
+
font: fontHelper(this.themeService.theme.typography.subtitle1),
|
|
236
|
+
color: this.themeService.theme.palette.getAccent(),
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
getBotSubtitleStyle() {
|
|
240
|
+
return {
|
|
241
|
+
font: fontHelper(this.themeService.theme.typography.caption2),
|
|
242
|
+
color: this.themeService.theme.palette.getAccent500(),
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
AIAssistBotMessageListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AIAssistBotMessageListComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CometChatThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
247
|
+
AIAssistBotMessageListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AIAssistBotMessageListComponent, selector: "aiassist-bot-message-list", inputs: { hideSearch: "hideSearch", footerView: "footerView", user: "user", group: "group", currentAskAIBot: "currentAskAIBot", subtitleText: "subtitleText", sendIconUrl: "sendIconUrl", waitIcon: "waitIcon", errorIcon: "errorIcon", botFirstMessageText: "botFirstMessageText", closeButtonIconURL: "closeButtonIconURL", sendButtonIconURL: "sendButtonIconURL", avatarStyle: "avatarStyle", aiBotChatHeaderStyle: "aiBotChatHeaderStyle", aiBotChatContainerStyle: "aiBotChatContainerStyle", datePattern: "datePattern", alignment: "alignment" }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }], ngImport: i0, template: "<div class=\"cc-ai-assist-message-list__wrapper\" [ngStyle]=\"aiBotChatContainerStyle\">\n <div class=\"cc-ai-assist-message-list__header-view\" [ngStyle]=\"aiBotChatHeaderStyle\">\n <div class=\"cc-ai-assist-message-list__header-avatar\">\n <cometchat-avatar [image]=\"currentAskAIBot?.iconURL\" [avatarStyle]=\"avatarStyle\">\n </cometchat-avatar>\n <div class=\"cc-ai-assist-message-list__header-bot-name\"> \n \n\n <div [ngStyle]=\"getBotTitleStyle()\">\n {{currentAskAIBot?.title}}\n </div>\n <div [ngStyle]=\"getBotSubtitleStyle()\">\n {{subtitleText}}\n </div>\n </div>\n\n </div>\n\n <cometchat-button [iconURL]=\"closeButtonIconURL\" class=\"cc-details__close-button\" [buttonStyle]=\"closeButtonStyle\"\n (cc-button-clicked)=\"onCloseDetails()\"></cometchat-button>\n </div>\n <div class=\"cc-ai-assist-message-list\">\n <cometchat-list [listItemView]=\"listItem\" [list]=\"botMessagesList\" [hideSearch]=\"hideSearch\">\n </cometchat-list>\n <ng-template #listItem let-message>\n <cometchat-message-bubble [bottomView]=\"null\" [footerView]=\"bubbleFooter\" [threadView]=\"null\"\n [contentView]=\"contentView\" [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"getBubbleAlignment(message)\" [leadingView]=\"leadingView\" [headerView]=\"bubbleHeader\">\n <ng-template #contentView>\n <div class=\"cc-ai-assist-message\"\n >\n {{message.data.text}}\n </div>\n </ng-template>\n <ng-template #leadingView>\n\n </ng-template>\n <ng-template #bubbleHeader>\n\n </ng-template>\n <ng-template #bubbleFooter>\n <div>\n\n <cometchat-date [pattern]=\"datePattern\" [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"bubbleDateStyle\"></cometchat-date>\n <cometchat-receipt\n *ngIf=\"message?.receiverId !==currentAskAIBot.id && message?.getId()===currentMessageObject?.getId()\"\n [receipt]=\"receipts\" [waitIcon]=\"waitIcon\" [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </cometchat-message-bubble>\n <hr>\n </ng-template>\n </div>\n\n <div class=\"cc-ai-assist__input-wrapper\">\n <div class=\"cc-ai-assist__input\">\n <cometchat-message-input [messageInputStyle]=\"messageInputStyle\" #inputRef\n (cc-message-input-changed)=\"messageInputChanged($event)\"\n (cc-message-input-entered)=\"handleClick()\"></cometchat-message-input>\n <cometchat-button [iconURL]=\"sendIconUrl\" (cc-button-clicked)=\"handleClick()\"\n [buttonStyle]=\"sendButtonStyle\"></cometchat-button>\n </div>\n </div>\n</div>", styles: [".cc-ai-assist-message-list__wrapper{position:absolute;right:0;top:0;background-color:#fff;width:50%;height:100%}.cc-ai-assist-message-list__header-view{display:flex;justify-content:space-between;align-items:center;height:5%;padding:5px;background-color:#14141426}.cc-ai-assist-message-list__header-avatar{display:flex;align-items:center;gap:8px}.cc-ai-assist-message-list__header-bot-name{display:flex;flex-direction:column}.cc-ai-assist-message-list__header-bot-name>small{color:#14141494;font-family:inter}.cc-ai-assist-message-list{height:85%;border-bottom:1px solid RGB(229,231,233)}.cc-ai-assist-message{padding:8px 12px}.cc-ai-assist__input-wrapper{width:100%;height:7%;position:absolute;bottom:0;padding-left:7px}.cc-ai-assist__input{display:flex;width:98%;align-items:center}cometchat-message-input{width:95%}\n"], components: [{ type: i2.CometchatListComponent, selector: "cometchat-list", inputs: ["listItemView", "onScrolledToBottom", "onScrolledToTop", "list", "onSearch", "getSectionHeader", "searchText", "searchIconURL", "listStyle", "searchPlaceholderText", "hideSearch", "hideError", "title", "titleAlignment", "errorStateView", "loadingStateView", "emptyStateView", "state", "errorStateText", "emptyStateText", "loadingIconURL", "showSectionHeader", "sectionHeaderField", "DateSeparatorPattern", "dateSeparatorStyle"] }, { type: i3.CometChatMessageBubbleComponent, selector: "cometchat-message-bubble", inputs: ["messageBubbleStyle", "alignment", "options", "id", "leadingView", "headerView", "replyView", "contentView", "threadView", "footerView", "bottomView", "moreIconURL", "topMenuSize"] }], directives: [{ type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AIAssistBotMessageListComponent, decorators: [{
|
|
249
|
+
type: Component,
|
|
250
|
+
args: [{ selector: "aiassist-bot-message-list", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cc-ai-assist-message-list__wrapper\" [ngStyle]=\"aiBotChatContainerStyle\">\n <div class=\"cc-ai-assist-message-list__header-view\" [ngStyle]=\"aiBotChatHeaderStyle\">\n <div class=\"cc-ai-assist-message-list__header-avatar\">\n <cometchat-avatar [image]=\"currentAskAIBot?.iconURL\" [avatarStyle]=\"avatarStyle\">\n </cometchat-avatar>\n <div class=\"cc-ai-assist-message-list__header-bot-name\"> \n \n\n <div [ngStyle]=\"getBotTitleStyle()\">\n {{currentAskAIBot?.title}}\n </div>\n <div [ngStyle]=\"getBotSubtitleStyle()\">\n {{subtitleText}}\n </div>\n </div>\n\n </div>\n\n <cometchat-button [iconURL]=\"closeButtonIconURL\" class=\"cc-details__close-button\" [buttonStyle]=\"closeButtonStyle\"\n (cc-button-clicked)=\"onCloseDetails()\"></cometchat-button>\n </div>\n <div class=\"cc-ai-assist-message-list\">\n <cometchat-list [listItemView]=\"listItem\" [list]=\"botMessagesList\" [hideSearch]=\"hideSearch\">\n </cometchat-list>\n <ng-template #listItem let-message>\n <cometchat-message-bubble [bottomView]=\"null\" [footerView]=\"bubbleFooter\" [threadView]=\"null\"\n [contentView]=\"contentView\" [messageBubbleStyle]=\"setMessageBubbleStyle(message)\"\n [alignment]=\"getBubbleAlignment(message)\" [leadingView]=\"leadingView\" [headerView]=\"bubbleHeader\">\n <ng-template #contentView>\n <div class=\"cc-ai-assist-message\"\n >\n {{message.data.text}}\n </div>\n </ng-template>\n <ng-template #leadingView>\n\n </ng-template>\n <ng-template #bubbleHeader>\n\n </ng-template>\n <ng-template #bubbleFooter>\n <div>\n\n <cometchat-date [pattern]=\"datePattern\" [timestamp]=\"message?.getSentAt()\"\n [dateStyle]=\"bubbleDateStyle\"></cometchat-date>\n <cometchat-receipt\n *ngIf=\"message?.receiverId !==currentAskAIBot.id && message?.getId()===currentMessageObject?.getId()\"\n [receipt]=\"receipts\" [waitIcon]=\"waitIcon\" [errorIcon]=\"errorIcon\"></cometchat-receipt>\n </div>\n </ng-template>\n </cometchat-message-bubble>\n <hr>\n </ng-template>\n </div>\n\n <div class=\"cc-ai-assist__input-wrapper\">\n <div class=\"cc-ai-assist__input\">\n <cometchat-message-input [messageInputStyle]=\"messageInputStyle\" #inputRef\n (cc-message-input-changed)=\"messageInputChanged($event)\"\n (cc-message-input-entered)=\"handleClick()\"></cometchat-message-input>\n <cometchat-button [iconURL]=\"sendIconUrl\" (cc-button-clicked)=\"handleClick()\"\n [buttonStyle]=\"sendButtonStyle\"></cometchat-button>\n </div>\n </div>\n</div>", styles: [".cc-ai-assist-message-list__wrapper{position:absolute;right:0;top:0;background-color:#fff;width:50%;height:100%}.cc-ai-assist-message-list__header-view{display:flex;justify-content:space-between;align-items:center;height:5%;padding:5px;background-color:#14141426}.cc-ai-assist-message-list__header-avatar{display:flex;align-items:center;gap:8px}.cc-ai-assist-message-list__header-bot-name{display:flex;flex-direction:column}.cc-ai-assist-message-list__header-bot-name>small{color:#14141494;font-family:inter}.cc-ai-assist-message-list{height:85%;border-bottom:1px solid RGB(229,231,233)}.cc-ai-assist-message{padding:8px 12px}.cc-ai-assist__input-wrapper{width:100%;height:7%;position:absolute;bottom:0;padding-left:7px}.cc-ai-assist__input{display:flex;width:98%;align-items:center}cometchat-message-input{width:95%}\n"] }]
|
|
251
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.CometChatThemeService }]; }, propDecorators: { hideSearch: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], footerView: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], user: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}], group: [{
|
|
258
|
+
type: Input
|
|
259
|
+
}], currentAskAIBot: [{
|
|
260
|
+
type: Input
|
|
261
|
+
}], subtitleText: [{
|
|
262
|
+
type: Input
|
|
263
|
+
}], sendIconUrl: [{
|
|
264
|
+
type: Input
|
|
265
|
+
}], waitIcon: [{
|
|
266
|
+
type: Input
|
|
267
|
+
}], errorIcon: [{
|
|
268
|
+
type: Input
|
|
269
|
+
}], botFirstMessageText: [{
|
|
270
|
+
type: Input
|
|
271
|
+
}], closeButtonIconURL: [{
|
|
272
|
+
type: Input
|
|
273
|
+
}], sendButtonIconURL: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}], avatarStyle: [{
|
|
276
|
+
type: Input
|
|
277
|
+
}], aiBotChatHeaderStyle: [{
|
|
278
|
+
type: Input
|
|
279
|
+
}], aiBotChatContainerStyle: [{
|
|
280
|
+
type: Input
|
|
281
|
+
}], datePattern: [{
|
|
282
|
+
type: Input
|
|
283
|
+
}], inputRef: [{
|
|
284
|
+
type: ViewChild,
|
|
285
|
+
args: ["inputRef", { static: false }]
|
|
286
|
+
}], alignment: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}] } });
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlhc3Npc3QtYm90LW1lc3NhZ2UtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL1NoYXJlZC9WaWV3cy9BSUFzc2lzdEJvdE1lc3NhZ2VMaXN0L2FpYXNzaXN0LWJvdC1tZXNzYWdlLWxpc3QvYWlhc3Npc3QtYm90LW1lc3NhZ2UtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL1NoYXJlZC9WaWV3cy9BSUFzc2lzdEJvdE1lc3NhZ2VMaXN0L2FpYXNzaXN0LWJvdC1tZXNzYWdlLWxpc3QvYWlhc3Npc3QtYm90LW1lc3NhZ2UtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFzQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9FLE9BQU8sRUFDTCxTQUFTLEVBRVQsdUJBQXVCLEVBQ3ZCLEtBQUssRUFFTCxTQUFTLEdBSVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFdBQVcsR0FHWixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFFTCxRQUFRLEVBS1Isb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUV0Qix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBRWpCLFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxHQUNULE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUlMLHFCQUFxQixHQUN0QixNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFTakMsTUFBTSxPQUFPLCtCQUErQjtJQThDMUMsWUFDVSxHQUFzQixFQUN0QixZQUFtQztRQURuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUEvQzdDLGlCQUFZLEdBQTRCLEVBQUUsQ0FBQztR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QUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBR0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR29DLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFLL0IsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbWV0Q2hhdFRoZW1lU2VydmljZSB9IGZyb20gXCIuLy4uLy4uLy4uLy4uL0NvbWV0Q2hhdFRoZW1lLnNlcnZpY2VcIjtcbmltcG9ydCB7IENvbWV0Q2hhdCwgQ29tZXRDaGF0RXhjZXB0aW9uIH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBMaXN0SXRlbVN0eWxlLFxuICBBdmF0YXJTdHlsZSxcbiAgTWVzc2FnZUlucHV0U3R5bGUsXG4gIERhdGVTdHlsZSxcbn0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtZWxlbWVudHNcIjtcbmltcG9ydCB7XG4gIENvbWV0Q2hhdE9wdGlvbixcbiAgbG9jYWxpemUsXG4gIFNlbGVjdGlvbk1vZGUsXG4gIFRpdGxlQWxpZ25tZW50LFxuICBTdGF0ZXMsXG4gIENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSxcbiAgTWVzc2FnZUxpc3RBbGlnbm1lbnQsXG4gIE1lc3NhZ2VCdWJibGVBbGlnbm1lbnQsXG4gIENvbWV0Q2hhdE1lc3NhZ2VPcHRpb24sXG4gIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLFxuICBDb21ldENoYXRVSUV2ZW50cyxcbiAgQ29tZXRDaGF0R3JvdXBFdmVudHMsXG4gIGZvbnRIZWxwZXIsXG4gIERhdGVQYXR0ZXJucyxcbiAgUmVjZWlwdHMsXG59IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXJlc291cmNlc1wiO1xuaW1wb3J0IHtcbiAgVXNlcnNTdHlsZSxcbiAgQmFzZVN0eWxlLFxuICBMaXN0U3R5bGUsXG4gIENvbWV0Q2hhdFVJS2l0VXRpbGl0eSxcbn0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYWlhc3Npc3QtYm90LW1lc3NhZ2UtbGlzdFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2FpYXNzaXN0LWJvdC1tZXNzYWdlLWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2FpYXNzaXN0LWJvdC1tZXNzYWdlLWxpc3QuY29tcG9uZW50LnNjc3NcIl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBSUFzc2lzdEJvdE1lc3NhZ2VMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbWVzc2FnZXNMaXN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2VbXSA9IFtdO1xuICBib3RNZXNzYWdlc0xpc3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZVtdID0gW107XG4gIEBJbnB1dCgpIGhpZGVTZWFyY2g6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBmb290ZXJWaWV3ITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKSB1c2VyITogQ29tZXRDaGF0LlVzZXI7XG4gIEBJbnB1dCgpIGdyb3VwITogQ29tZXRDaGF0Lkdyb3VwO1xuICBASW5wdXQoKSBjdXJyZW50QXNrQUlCb3QhOiBhbnk7XG4gIEBJbnB1dCgpIHN1YnRpdGxlVGV4dDogc3RyaW5nID0gbG9jYWxpemUoXCJDT01FVENIQVRfQVNLX0JPVF9TVUJUSVRMRVwiKTtcbiAgQElucHV0KCkgc2VuZEljb25Vcmw6IHN0cmluZyA9IFwiYXNzZXRzL1NlbmQuc3ZnXCI7XG4gIEBJbnB1dCgpIHdhaXRJY29uOiBzdHJpbmcgPSBcImFzc2V0cy93YWl0LnN2Z1wiO1xuICBASW5wdXQoKSBlcnJvckljb246IHN0cmluZyA9IFwiYXNzZXRzL3dhcm5pbmctc21hbGwuc3ZnXCI7XG4gIEBJbnB1dCgpIGJvdEZpcnN0TWVzc2FnZVRleHQ6IHN0cmluZyA9IGxvY2FsaXplKFxuICAgIFwiQ09NRVRDSEFUX0JPVF9GSVJTVF9NRVNTQUdFXCJcbiAgKTtcbiAgQElucHV0KCkgY2xvc2VCdXR0b25JY29uVVJMOiBzdHJpbmcgPSBcImFzc2V0cy9jbG9zZTJ4LnN2Z1wiO1xuICBASW5wdXQoKSBzZW5kQnV0dG9uSWNvblVSTDogc3RyaW5nID0gXCJhc3NldHMvU2VuZC5zdmdcIjtcbiAgQElucHV0KCkgYXZhdGFyU3R5bGU6IEF2YXRhclN0eWxlID0ge1xuICAgIGJvcmRlclJhZGl1czogXCIxNnB4XCIsXG4gICAgd2lkdGg6IFwiMjhweFwiLFxuICAgIGhlaWdodDogXCIyOHB4XCIsXG4gIH07XG4gIEBJbnB1dCgpIGFpQm90Q2hhdEhlYWRlclN0eWxlOiBhbnkgPSB7XG4gICAgYmFja0dyb3VuZDogXCJyZ2JhKDIwLCAyMCwgMjAsIDAuMTUpXCIsXG4gIH07XG4gIEBJbnB1dCgpIGFpQm90Q2hhdENvbnRhaW5lclN0eWxlOiBhbnkgPSB7XG4gICAgYmFja0dyb3VuZDogXCJyZ2JhKDI1NSwyNTUsMjU1KVwiLFxuICB9O1xuICBASW5wdXQoKSBkYXRlUGF0dGVybjogRGF0ZVBhdHRlcm5zID0gRGF0ZVBhdHRlcm5zLnRpbWU7XG4gIGJ1YmJsZURhdGVTdHlsZTogRGF0ZVN0eWxlID0ge307XG5cbiAgQFZpZXdDaGlsZChcImlucHV0UmVmXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBpbnB1dFJlZiE6IEVsZW1lbnRSZWY7XG5cbiAgY2NDaGF0Q2hhbmdlZCE6IFN1YnNjcmlwdGlvbjtcblxuICBtZXNzYWdlVGVtcGxhdGU6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZVtdID0gW107XG4gIEBJbnB1dCgpIGFsaWdubWVudDogTWVzc2FnZUxpc3RBbGlnbm1lbnQgPSBNZXNzYWdlTGlzdEFsaWdubWVudC5zdGFuZGFyZDtcbiAgcHVibGljIGxvZ2dlZEluVXNlciE6IENvbWV0Q2hhdC5Vc2VyO1xuXG4gIHB1YmxpYyByZWNlaXB0czogYW55ID0gUmVjZWlwdHMud2FpdDtcbiAgcHVibGljIGN1cnJlbnRNZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHR5cGVzTWFwOiBhbnkgPSB7fTtcbiAgcHVibGljIG1lc3NhZ2VUeXBlc01hcDogYW55ID0ge307XG4gIGlucHV0VmFsdWUhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBDb21ldENoYXRUaGVtZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgXG4gICAgdGhpcy5zZXRBdmF0YXJTdHlsZSgpO1xuICAgIHRoaXMuc2V0QWlCb3RDaGF0SGVhZGVyKCk7XG4gICAgdGhpcy5zZXRBaUJvdENoYXRDb250YWluZXJTdHlsZSgpO1xuICAgIGxldCByZWNlaXZlcklkOiBzdHJpbmcgPSB0aGlzLnVzZXJcbiAgICAgID8gdGhpcy51c2VyPy5nZXRVaWQoKSFcbiAgICAgIDogdGhpcy5ncm91cD8uZ2V0R3VpZCgpITtcblxuICAgIGxldCByZWNlaXZlclR5cGUgPSB0aGlzLnVzZXJcbiAgICAgID8gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS51c2VyXG4gICAgICA6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUuZ3JvdXA7XG4gICBcbiAgICBsZXQgZmlyc3RNZXNzYWdlID0gbmV3IENvbWV0Q2hhdC5UZXh0TWVzc2FnZShcbiAgICAgIHRoaXMuY3VycmVudEFza0FJQm90Py5pZCEsXG4gICAgICB0aGlzLmJvdEZpcnN0TWVzc2FnZVRleHQsXG4gICAgICByZWNlaXZlclR5cGVcbiAgICApO1xuICAgIGZpcnN0TWVzc2FnZS5zZXRTZW50QXQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LmdldFVuaXhUaW1lc3RhbXAoKSk7XG5cbiAgICB0aGlzLmJvdE1lc3NhZ2VzTGlzdC5wdXNoKGZpcnN0TWVzc2FnZSk7XG5cbiAgICBDb21ldENoYXQuZ2V0TG9nZ2VkaW5Vc2VyKClcbiAgICAgIC50aGVuKCh1c2VyOiBDb21ldENoYXQuVXNlciB8IG51bGwpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZWRJblVzZXIgPSB1c2VyITtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9uRXJyb3IpIHtcbiAgICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuc2V0TWVzc2FnZXNTdHlsZSgpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9FdmVudHMoKTtcbiAgfVxuXG4gIHNldEF2YXRhclN0eWxlKCkge1xuICAgIGxldCBkZWZhdWx0U3R5bGU6IEF2YXRhclN0eWxlID0gbmV3IEF2YXRhclN0eWxlKHtcbiAgICAgIGJvcmRlclJhZGl1czogXCIyNHB4XCIsXG4gICAgICB3aWR0aDogXCIyOHB4XCIsXG4gICAgICBoZWlnaHQ6IFwiMjhweFwiLFxuICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQyMDAoKX1gLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDcwMCgpLFxuICAgICAgbmFtZVRleHRDb2xvcjogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ5MDAoKSxcbiAgICAgIGJhY2tncm91bmRTaXplOiBcImNvdmVyXCIsXG4gICAgICBuYW1lVGV4dEZvbnQ6IGZvbnRIZWxwZXIodGhpcy50aGVtZVNlcnZpY2UudGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuXG4gICAgICBvdXRlclZpZXdCb3JkZXJTcGFjaW5nOiBcIlwiLFxuICAgIH0pO1xuICAgIHRoaXMuYXZhdGFyU3R5bGUgPSB7IC4uLmRlZmF1bHRTdHlsZSwgLi4udGhpcy5hdmF0YXJTdHlsZSB9O1xuICB9XG5cbiAgc2V0QWlCb3RDaGF0SGVhZGVyKCkge1xuICAgIGxldCBkZWZhdWx0U3R5bGU6IGFueSA9IHtcbiAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAganVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiLFxuICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgIHBhZGRpbmc6IFwiMTBweFwiLFxuICAgICAgaGVpZ2h0OiBcIjQwcHhcIixcbiAgICAgIGJhY2tncm91bmQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lPy5wYWxldHRlLmdldEFjY2VudDIwMCgpLFxuICAgIH07XG4gICAgdGhpcy5haUJvdENoYXRIZWFkZXJTdHlsZSA9IHtcbiAgICAgIC4uLmRlZmF1bHRTdHlsZSxcbiAgICAgIC4uLnRoaXMuYWlCb3RDaGF0SGVhZGVyU3R5bGUsXG4gICAgfTtcbiAgfVxuICBzZXRBaUJvdENoYXRDb250YWluZXJTdHlsZSgpIHtcbiAgICBsZXQgZGVmYXVsdFN0eWxlOiBhbnkgPSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEJhY2tncm91bmQoKSxcbiAgICB9O1xuICAgIHRoaXMuYWlCb3RDaGF0Q29udGFpbmVyU3R5bGUgPSB7XG4gICAgICAuLi5kZWZhdWx0U3R5bGUsXG4gICAgICAuLi50aGlzLmFpQm90Q2hhdENvbnRhaW5lclN0eWxlLFxuICAgIH07XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuU3Vic2NyaWJlVG9FdmVudCgpO1xuICB9XG5cbiAgc3Vic2NyaWJlVG9FdmVudHMoKSB7XG4gICAgdGhpcy5jY0NoYXRDaGFuZ2VkID0gQ29tZXRDaGF0VUlFdmVudHMuY2NBY3RpdmVDaGF0Q2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgQ29tZXRDaGF0VUlFdmVudHMuY2NTaG93UGFuZWwubmV4dCh7XG4gICAgICAgIGNoaWxkOiB7IHNob3dCb3RWaWV3OiBmYWxzZSB9LFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICB1blN1YnNjcmliZVRvRXZlbnQoKSB7XG4gICAgdGhpcy5jY0NoYXRDaGFuZ2VkPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25FcnJvcihlcnJvcjogQ29tZXRDaGF0RXhjZXB0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gIH1cblxuICBnZW5lcmF0ZVJhbmRvbVN0cmluZyhsZW5ndGg6IGFueSkge1xuICAgIGNvbnN0IGNoYXJhY3RlcnMgPVxuICAgICAgXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OVwiO1xuICAgIGxldCByYW5kb21TdHJpbmcgPSBcIlwiO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XG4gICAgICByYW5kb21TdHJpbmcgKz0gY2hhcmFjdGVycy5jaGFyQXQocmFuZG9tSW5kZXgpO1xuICAgIH1cblxuICAgIHJldHVybiByYW5kb21TdHJpbmc7XG4gIH1cblxuICBoYW5kbGVDbGljaygpIHtcbiAgICB0aGlzLnJlY2VpcHRzID0gUmVjZWlwdHMud2FpdDtcblxuICAgIGxldCByZWNlaXZlcklkOiBzdHJpbmcgPSB0aGlzLnVzZXJcbiAgICAgID8gdGhpcy51c2VyPy5nZXRVaWQoKSFcbiAgICAgIDogdGhpcy5ncm91cD8uZ2V0R3VpZCgpITtcblxuICAgIGxldCByZWNlaXZlclR5cGUgPSB0aGlzLnVzZXJcbiAgICAgID8gQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVJlY2VpdmVyVHlwZS51c2VyXG4gICAgICA6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VSZWNlaXZlclR5cGUuZ3JvdXA7XG5cbiAgICBsZXQgYm90VWlkID0gdGhpcy5jdXJyZW50QXNrQUlCb3Q/LmlkITtcbiAgICBsZXQgcXVlc3Rpb24gPSB0aGlzLmlucHV0VmFsdWU7XG4gICAgdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZW1wdHlJbnB1dEZpZWxkKCk7XG4gICAgbGV0IHF1ZXJ5ID0gbmV3IENvbWV0Q2hhdC5UZXh0TWVzc2FnZShcbiAgICAgIHRoaXMubG9nZ2VkSW5Vc2VyLmdldFVpZCgpISxcbiAgICAgIHF1ZXN0aW9uLFxuICAgICAgcmVjZWl2ZXJUeXBlXG4gICAgKTtcblxuICAgIC8vIEdlbmVyYXRlIGEgcmFuZG9tIHN0cmluZyBmb3IgdGhlIG1lc3NhZ2UgSURcbiAgICBsZXQgcmFuZG9tU3RyaW5nID0gdGhpcy5nZW5lcmF0ZVJhbmRvbVN0cmluZygxMCk7IC8vIFNwZWNpZnkgdGhlIGRlc2lyZWQgbGVuZ3RoXG5cbiAgICAvLyBDb252ZXJ0IHRoZSByYW5kb20gc3RyaW5nIHRvIGEgbnVtYmVyIChtYXkgbm90IGJlIHRoZSBiZXN0IHByYWN0aWNlKVxuICAgIGxldCByYW5kb21TdHJpbmdBc051bWJlciA9IHBhcnNlSW50KHJhbmRvbVN0cmluZywgMzYpOyAvLyAzNiBpcyB0aGUgcmFkaXggZm9yIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzXG5cbiAgICBxdWVyeS5zZXRJZChyYW5kb21TdHJpbmdBc051bWJlcik7XG5cbiAgICBxdWVyeS5zZXRTZW50QXQoQ29tZXRDaGF0VUlLaXRVdGlsaXR5LmdldFVuaXhUaW1lc3RhbXAoKSk7XG4gICAgdGhpcy5jdXJyZW50TWVzc2FnZU9iamVjdCA9IHF1ZXJ5O1xuICAgIGlmIChxdWVzdGlvbi50cmltKCkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5ib3RNZXNzYWdlc0xpc3QucHVzaChxdWVyeSk7XG5cbiAgICAgIENvbWV0Q2hhdC5hc2tCb3QocmVjZWl2ZXJJZCwgcmVjZWl2ZXJUeXBlLCBib3RVaWQsIHF1ZXN0aW9uKVxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKChtZXNzYWdlVGV4dCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IFwiXCI7XG4gICAgICAgICAgdGhpcy5yZWNlaXB0cyA9IG51bGw7XG4gICAgICAgICAgbGV0IGFuc3dlciA9IG5ldyBDb21ldENoYXQuVGV4dE1lc3NhZ2UoXG4gICAgICAgICAgICBib3RVaWQsXG4gICAgICAgICAgICBtZXNzYWdlVGV4dCxcbiAgICAgICAgICAgIHJlY2VpdmVyVHlwZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYW5zd2VyLnNldFNlbnRBdChDb21ldENoYXRVSUtpdFV0aWxpdHkuZ2V0VW5peFRpbWVzdGFtcCgpKTtcblxuICAgICAgICAgIHRoaXMuYm90TWVzc2FnZXNMaXN0LnB1c2goYW5zd2VyKTtcbiAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLnJlY2VpcHRzID0gUmVjZWlwdHMuZXJyb3I7XG5cbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiZXJyb3JcIiwgZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRNZXNzYWdlQnViYmxlU3R5bGUobXNnOiBDb21ldENoYXQuQmFzZU1lc3NhZ2UpOiBCYXNlU3R5bGUge1xuICAgIGxldCBzdHlsZSE6IEJhc2VTdHlsZTtcbiAgICBpZiAobXNnLmdldFJlY2VpdmVySWQoKSAhPT0gdGhpcy5sb2dnZWRJblVzZXI/LmdldFVpZCgpKSB7XG4gICAgICBzdHlsZSA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogdGhpcy50aGVtZVNlcnZpY2UudGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKSxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjEycHhcIixcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldFByaW1hcnkoKSxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjEycHhcIixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9XG5cbiAgZ2V0QnViYmxlQWxpZ25tZW50KG1lc3NhZ2U6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSkge1xuICAgIHJldHVybiBtZXNzYWdlLmdldFJlY2VpdmVySWQoKSAhPT0gdGhpcy5sb2dnZWRJblVzZXI/LmdldFVpZCgpXG4gICAgICA/IE1lc3NhZ2VCdWJibGVBbGlnbm1lbnQubGVmdFxuICAgICAgOiBNZXNzYWdlQnViYmxlQWxpZ25tZW50LnJpZ2h0O1xuICB9XG5cbiAgbWVzc2FnZUlucHV0U3R5bGU6IE1lc3NhZ2VJbnB1dFN0eWxlID0ge1xuICAgIHdpZHRoOiBcIjk4JVwiLFxuICAgIGRpdmlkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIGJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICBib3JkZXI6IFwiMnB4IHNvbGlkIHJlZCB0cmFuc3BhcmVudFwiLFxuICB9O1xuXG4gIHNlbmRCdXR0b25TdHlsZTogYW55ID0ge1xuICAgIGhlaWdodDogXCIyNHB4XCIsXG4gICAgd2lkdGg6IFwiMjRweFwiLFxuICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIjBcIixcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgYnV0dG9uSWNvblRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICB9O1xuXG4gIG1lc3NhZ2VJbnB1dENoYW5nZWQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgIGNvbnN0IHRleHQgPSBldmVudD8uZGV0YWlsPy52YWx1ZT8udHJpbSgpO1xuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRleHQ7XG4gIH07XG5cbiAgY2xvc2VCdXR0b25TdHlsZTogYW55ID0ge1xuICAgIGhlaWdodDogXCIyNHB4XCIsXG4gICAgd2lkdGg6IFwiMjRweFwiLFxuICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgYm9yZGVyUmFkaXVzOiBcIjBcIixcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgYnV0dG9uSWNvblRpbnQ6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0UHJpbWFyeSgpLFxuICB9O1xuXG4gIGxhYmVsU3R5bGU6IGFueSA9IHtcbiAgICB0ZXh0Rm9udDogXCI0MDAgMTFweCBJbnRlclwiLFxuICAgIHRleHRDb2xvcjogXCJncmV5XCIsXG4gIH07XG5cbiAgb25DbG9zZURldGFpbHMoKSB7XG4gICAgQ29tZXRDaGF0VUlFdmVudHMuY2NTaG93UGFuZWwubmV4dCh7XG4gICAgICBjaGlsZDogeyBzaG93Qm90VmlldzogZmFsc2UgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHNldE1lc3NhZ2VzU3R5bGUoKSB7XG4gICAgdGhpcy5idWJibGVEYXRlU3R5bGUgPSB7XG4gICAgICB0ZXh0Q29sb3I6IHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICB0ZXh0Rm9udDogZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LmNhcHRpb24yKSxcbiAgICB9O1xuICB9XG5cbiAgIGdldEJvdFRpdGxlU3R5bGUoKXtcbiAgICByZXR1cm4ge1xuICAgICAgICBmb250OiAgZm9udEhlbHBlcih0aGlzLnRoZW1lU2VydmljZS50aGVtZS50eXBvZ3JhcGh5LnN1YnRpdGxlMSksXG4gICAgICAgIGNvbG9yOiB0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudCgpLFxuICAgIH1cbn1cblxuIGdldEJvdFN1YnRpdGxlU3R5bGUoKXtcbiAgICByZXR1cm4ge1xuICAgICAgICBmb250OiBmb250SGVscGVyKHRoaXMudGhlbWVTZXJ2aWNlLnRoZW1lLnR5cG9ncmFwaHkuY2FwdGlvbjIpLFxuICAgICAgICBjb2xvcjp0aGlzLnRoZW1lU2VydmljZS50aGVtZS5wYWxldHRlLmdldEFjY2VudDUwMCgpLFxuICAgIH1cbn1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNjLWFpLWFzc2lzdC1tZXNzYWdlLWxpc3RfX3dyYXBwZXJcIiBbbmdTdHlsZV09XCJhaUJvdENoYXRDb250YWluZXJTdHlsZVwiPlxuICA8ZGl2IGNsYXNzPVwiY2MtYWktYXNzaXN0LW1lc3NhZ2UtbGlzdF9faGVhZGVyLXZpZXdcIiBbbmdTdHlsZV09XCJhaUJvdENoYXRIZWFkZXJTdHlsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYy1haS1hc3Npc3QtbWVzc2FnZS1saXN0X19oZWFkZXItYXZhdGFyXCI+XG4gICAgICA8Y29tZXRjaGF0LWF2YXRhciBbaW1hZ2VdPVwiY3VycmVudEFza0FJQm90Py5pY29uVVJMXCIgW2F2YXRhclN0eWxlXT1cImF2YXRhclN0eWxlXCI+XG4gICAgICA8L2NvbWV0Y2hhdC1hdmF0YXI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2MtYWktYXNzaXN0LW1lc3NhZ2UtbGlzdF9faGVhZGVyLWJvdC1uYW1lXCI+IFxuICAgICAgIFxuXG4gICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJnZXRCb3RUaXRsZVN0eWxlKClcIj5cbiAgICAgICAgICAgIHt7Y3VycmVudEFza0FJQm90Py50aXRsZX19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJnZXRCb3RTdWJ0aXRsZVN0eWxlKClcIj5cbiAgICAgICAgICAgIHt7c3VidGl0bGVUZXh0fX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG5cbiAgICA8Y29tZXRjaGF0LWJ1dHRvbiBbaWNvblVSTF09XCJjbG9zZUJ1dHRvbkljb25VUkxcIiBjbGFzcz1cImNjLWRldGFpbHNfX2Nsb3NlLWJ1dHRvblwiIFtidXR0b25TdHlsZV09XCJjbG9zZUJ1dHRvblN0eWxlXCJcbiAgICAgIChjYy1idXR0b24tY2xpY2tlZCk9XCJvbkNsb3NlRGV0YWlscygpXCI+PC9jb21ldGNoYXQtYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNjLWFpLWFzc2lzdC1tZXNzYWdlLWxpc3RcIj5cbiAgICA8Y29tZXRjaGF0LWxpc3QgW2xpc3RJdGVtVmlld109XCJsaXN0SXRlbVwiIFtsaXN0XT1cImJvdE1lc3NhZ2VzTGlzdFwiIFtoaWRlU2VhcmNoXT1cImhpZGVTZWFyY2hcIj5cbiAgICA8L2NvbWV0Y2hhdC1saXN0PlxuICAgIDxuZy10ZW1wbGF0ZSAjbGlzdEl0ZW0gbGV0LW1lc3NhZ2U+XG4gICAgICA8Y29tZXRjaGF0LW1lc3NhZ2UtYnViYmxlIFtib3R0b21WaWV3XT1cIm51bGxcIiBbZm9vdGVyVmlld109XCJidWJibGVGb290ZXJcIiBbdGhyZWFkVmlld109XCJudWxsXCJcbiAgICAgICAgW2NvbnRlbnRWaWV3XT1cImNvbnRlbnRWaWV3XCIgW21lc3NhZ2VCdWJibGVTdHlsZV09XCJzZXRNZXNzYWdlQnViYmxlU3R5bGUobWVzc2FnZSlcIlxuICAgICAgICBbYWxpZ25tZW50XT1cImdldEJ1YmJsZUFsaWdubWVudChtZXNzYWdlKVwiIFtsZWFkaW5nVmlld109XCJsZWFkaW5nVmlld1wiIFtoZWFkZXJWaWV3XT1cImJ1YmJsZUhlYWRlclwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnRWaWV3PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYy1haS1hc3Npc3QtbWVzc2FnZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICB7e21lc3NhZ2UuZGF0YS50ZXh0fX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNsZWFkaW5nVmlldz5cblxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2J1YmJsZUhlYWRlcj5cblxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2J1YmJsZUZvb3Rlcj5cbiAgICAgICAgICA8ZGl2PlxuXG4gICAgICAgICAgICA8Y29tZXRjaGF0LWRhdGUgW3BhdHRlcm5dPVwiZGF0ZVBhdHRlcm5cIiBbdGltZXN0YW1wXT1cIm1lc3NhZ2U/LmdldFNlbnRBdCgpXCJcbiAgICAgICAgICAgICAgW2RhdGVTdHlsZV09XCJidWJibGVEYXRlU3R5bGVcIj48L2NvbWV0Y2hhdC1kYXRlPlxuICAgICAgICAgICAgPGNvbWV0Y2hhdC1yZWNlaXB0XG4gICAgICAgICAgICAgICpuZ0lmPVwibWVzc2FnZT8ucmVjZWl2ZXJJZCAhPT1jdXJyZW50QXNrQUlCb3QuaWQgJiYgbWVzc2FnZT8uZ2V0SWQoKT09PWN1cnJlbnRNZXNzYWdlT2JqZWN0Py5nZXRJZCgpXCJcbiAgICAgICAgICAgICAgW3JlY2VpcHRdPVwicmVjZWlwdHNcIiBbd2FpdEljb25dPVwid2FpdEljb25cIiBbZXJyb3JJY29uXT1cImVycm9ySWNvblwiPjwvY29tZXRjaGF0LXJlY2VpcHQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2NvbWV0Y2hhdC1tZXNzYWdlLWJ1YmJsZT5cbiAgICAgIDxocj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY2MtYWktYXNzaXN0X19pbnB1dC13cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImNjLWFpLWFzc2lzdF9faW5wdXRcIj5cbiAgICAgIDxjb21ldGNoYXQtbWVzc2FnZS1pbnB1dCBbbWVzc2FnZUlucHV0U3R5bGVdPVwibWVzc2FnZUlucHV0U3R5bGVcIiAjaW5wdXRSZWZcbiAgICAgICAgKGNjLW1lc3NhZ2UtaW5wdXQtY2hhbmdlZCk9XCJtZXNzYWdlSW5wdXRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAoY2MtbWVzc2FnZS1pbnB1dC1lbnRlcmVkKT1cImhhbmRsZUNsaWNrKClcIj48L2NvbWV0Y2hhdC1tZXNzYWdlLWlucHV0PlxuICAgICAgPGNvbWV0Y2hhdC1idXR0b24gW2ljb25VUkxdPVwic2VuZEljb25VcmxcIiAoY2MtYnV0dG9uLWNsaWNrZWQpPVwiaGFuZGxlQ2xpY2soKVwiXG4gICAgICAgIFtidXR0b25TdHlsZV09XCJzZW5kQnV0dG9uU3R5bGVcIj48L2NvbWV0Y2hhdC1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CometChatMessageBubble } from "./../../../CometChatMessageBubble/cometchat-message-bubble.module";
|
|
2
|
+
import { CometChatList } from "./../../../CometChatList/cometchat-list.module";
|
|
3
|
+
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from "@angular/core";
|
|
4
|
+
import { CommonModule } from "@angular/common";
|
|
5
|
+
import { AIAssistBotMessageListComponent } from "./aiassist-bot-message-list/aiassist-bot-message-list.component";
|
|
6
|
+
import { FormsModule } from "@angular/forms";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class AIAssistBotMessageList {
|
|
9
|
+
}
|
|
10
|
+
AIAssistBotMessageList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AIAssistBotMessageList, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
AIAssistBotMessageList.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AIAssistBotMessageList, declarations: [AIAssistBotMessageListComponent], imports: [CommonModule, CometChatList, CometChatMessageBubble, FormsModule], exports: [AIAssistBotMessageListComponent] });
|
|
12
|
+
AIAssistBotMessageList.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AIAssistBotMessageList, imports: [[CommonModule, CometChatList, CometChatMessageBubble, FormsModule]] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AIAssistBotMessageList, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
declarations: [AIAssistBotMessageListComponent],
|
|
17
|
+
imports: [CommonModule, CometChatList, CometChatMessageBubble, FormsModule],
|
|
18
|
+
exports: [AIAssistBotMessageListComponent],
|
|
19
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWlhc3Npc3QtYm90LW1lc3NhZ2UtbGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL1NoYXJlZC9WaWV3cy9BSUFzc2lzdEJvdE1lc3NhZ2VMaXN0L2FpYXNzaXN0LWJvdC1tZXNzYWdlLWxpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUTdDLE1BQU0sT0FBTyxzQkFBc0I7O29IQUF0QixzQkFBc0I7cUhBQXRCLHNCQUFzQixpQkFMbEIsK0JBQStCLGFBQ3BDLFlBQVksRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxhQUNoRSwrQkFBK0I7cUhBRzlCLHNCQUFzQixZQUp4QixDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDOzRGQUloRSxzQkFBc0I7a0JBTmxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsK0JBQStCLENBQUM7b0JBQy9DLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDO29CQUMzRSxPQUFPLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tZXRDaGF0TWVzc2FnZUJ1YmJsZSB9IGZyb20gXCIuLy4uLy4uLy4uL0NvbWV0Q2hhdE1lc3NhZ2VCdWJibGUvY29tZXRjaGF0LW1lc3NhZ2UtYnViYmxlLm1vZHVsZVwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0TGlzdCB9IGZyb20gXCIuLy4uLy4uLy4uL0NvbWV0Q2hhdExpc3QvY29tZXRjaGF0LWxpc3QubW9kdWxlXCI7XG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBBSUFzc2lzdEJvdE1lc3NhZ2VMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4vYWlhc3Npc3QtYm90LW1lc3NhZ2UtbGlzdC9haWFzc2lzdC1ib3QtbWVzc2FnZS1saXN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQUlBc3Npc3RCb3RNZXNzYWdlTGlzdENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENvbWV0Q2hhdExpc3QsIENvbWV0Q2hhdE1lc3NhZ2VCdWJibGUsIEZvcm1zTW9kdWxlXSxcbiAgZXhwb3J0czogW0FJQXNzaXN0Qm90TWVzc2FnZUxpc3RDb21wb25lbnRdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIEFJQXNzaXN0Qm90TWVzc2FnZUxpc3Qge31cbiJdfQ==
|