@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.
Files changed (113) hide show
  1. package/AI/AIAssistBot/AIAssistBot.d.ts +7 -0
  2. package/AI/AIAssistBot/AIAssistBotDecorator.d.ts +11 -0
  3. package/AI/AIConversationStarter/AIConversationStarter.d.ts +2 -2
  4. package/AI/AIConversationStarter/AIConversationStarterDecorator.d.ts +3 -0
  5. package/AI/AIConversationSummary/AIConversationSummary.d.ts +7 -0
  6. package/AI/AIConversationSummary/AIConversationSummaryDecorator.d.ts +10 -0
  7. package/AI/AISmartReplies/AISmartReplies.d.ts +2 -2
  8. package/AI/AISmartReplies/AISmartRepliesDecorator.d.ts +3 -0
  9. package/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.d.ts +119 -0
  10. package/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.d.ts +14 -0
  11. package/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.d.ts +111 -0
  12. package/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.d.ts +10 -0
  13. package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.d.ts +76 -0
  14. package/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.d.ts +10 -0
  15. package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.d.ts +90 -0
  16. package/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.d.ts +10 -0
  17. package/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.d.ts +133 -0
  18. package/Calls/CometChatCallLogs/cometchat-call-logs.module.d.ts +12 -0
  19. package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.d.ts +54 -0
  20. package/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.d.ts +12 -0
  21. package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +18 -7
  22. package/CometChatList/cometchat-list.component.d.ts +12 -9
  23. package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +65 -29
  24. package/CometChatMessageComposer/cometchat-message-composer.module.d.ts +3 -3
  25. package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +7 -6
  26. package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +6 -4
  27. package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +96 -55
  28. package/CometChatMessageList/cometchat-message-list.module.d.ts +1 -1
  29. package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +19 -16
  30. package/CometChatMessages/cometchat-messages.module.d.ts +3 -2
  31. package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +8 -5
  32. package/Shared/CometChatUIkit/CometChatUIKit.d.ts +13 -3
  33. package/Shared/Framework/AIExtensionDataSource.d.ts +5 -0
  34. package/Shared/Framework/DataSource.d.ts +3 -1
  35. package/Shared/Framework/DataSourceDecorator.d.ts +3 -1
  36. package/Shared/Utils/CallDetailUtils.d.ts +8 -0
  37. package/Shared/Utils/CallLogUtils.d.ts +8 -0
  38. package/Shared/Utils/MessageUtils.d.ts +2 -1
  39. package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.d.ts +71 -0
  40. package/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.d.ts +11 -0
  41. package/assets/InfoIcon.svg +13 -0
  42. package/assets/greaterThanIcon.svg +3 -0
  43. package/assets/incomingAudioCallIconUrl.svg +5 -0
  44. package/assets/incomingVideoCallIconUrl.svg +6 -0
  45. package/assets/missedAudioCallIconUrl.svg +5 -0
  46. package/assets/missedVideoCallIconUrl.svg +6 -0
  47. package/assets/outgoingAudioCallIconUrl.svg +5 -0
  48. package/assets/outgoingVideoCallIconUrl.svg +6 -0
  49. package/esm2020/AI/AIAssistBot/AIAssistBot.mjs +21 -0
  50. package/esm2020/AI/AIAssistBot/AIAssistBotDecorator.mjs +68 -0
  51. package/esm2020/AI/AIConversationStarter/AIConversationStarter.mjs +7 -4
  52. package/esm2020/AI/AIConversationStarter/AIConversationStarterDecorator.mjs +22 -1
  53. package/esm2020/AI/AIConversationSummary/AIConversationSummary.mjs +21 -0
  54. package/esm2020/AI/AIConversationSummary/AIConversationSummaryDecorator.mjs +32 -0
  55. package/esm2020/AI/AISmartReplies/AISmartReplies.mjs +7 -4
  56. package/esm2020/AI/AISmartReplies/AISmartRepliesDecorator.mjs +22 -1
  57. package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +3 -3
  58. package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details/cometchat-call-log-details.component.mjs +351 -0
  59. package/esm2020/Calls/CometChatCallLogDetails/cometchat-call-log-details.module.mjs +47 -0
  60. package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history/cometchat-call-log-history.component.mjs +352 -0
  61. package/esm2020/Calls/CometChatCallLogHistory/cometchat-call-log-history.module.mjs +21 -0
  62. package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants/cometchat-call-log-participants.component.mjs +189 -0
  63. package/esm2020/Calls/CometChatCallLogParticipants/cometchat-call-log-participants.module.mjs +21 -0
  64. package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings/cometchat-call-log-recordings.component.mjs +246 -0
  65. package/esm2020/Calls/CometChatCallLogRecordings/cometchat-call-log-recordings.module.mjs +21 -0
  66. package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs/cometchat-call-logs.component.mjs +585 -0
  67. package/esm2020/Calls/CometChatCallLogs/cometchat-call-logs.module.mjs +36 -0
  68. package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details/cometchat-call-logs-with-details.component.mjs +193 -0
  69. package/esm2020/Calls/CometChatCallLogsWithDetails/cometchat-call-logs-with-details.module.mjs +39 -0
  70. package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +1 -1
  71. package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +72 -46
  72. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +3 -3
  73. package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +1 -1
  74. package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +1 -1
  75. package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +3 -3
  76. package/esm2020/CometChatList/cometchat-list.component.mjs +44 -28
  77. package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +312 -115
  78. package/esm2020/CometChatMessageComposer/cometchat-message-composer.module.mjs +7 -14
  79. package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +15 -17
  80. package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +19 -21
  81. package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +888 -300
  82. package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +5 -5
  83. package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +72 -51
  84. package/esm2020/CometChatMessages/cometchat-messages.module.mjs +10 -6
  85. package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +23 -23
  86. package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +1 -1
  87. package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +3 -3
  88. package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +173 -36
  89. package/esm2020/Shared/Framework/AIExtensionDataSource.mjs +3 -0
  90. package/esm2020/Shared/Framework/ChatConfigurator.mjs +2 -2
  91. package/esm2020/Shared/Framework/DataSource.mjs +1 -1
  92. package/esm2020/Shared/Framework/DataSourceDecorator.mjs +5 -2
  93. package/esm2020/Shared/Utils/CallDetailUtils.mjs +72 -0
  94. package/esm2020/Shared/Utils/CallLogUtils.mjs +122 -0
  95. package/esm2020/Shared/Utils/MessageUtils.mjs +31 -20
  96. package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list/aiassist-bot-message-list.component.mjs +289 -0
  97. package/esm2020/Shared/Views/AIAssistBotMessageList/aiassist-bot-message-list.module.mjs +22 -0
  98. package/esm2020/public-api.mjs +106 -91
  99. package/fesm2015/cometchat-chat-uikit-angular.mjs +4249 -817
  100. package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
  101. package/fesm2020/cometchat-chat-uikit-angular.mjs +4271 -836
  102. package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
  103. package/package.json +6 -6
  104. package/public-api.d.ts +105 -90
  105. package/AI/AIEnabler.d.ts +0 -8
  106. package/AI/AIEnablerDecorator.d.ts +0 -7
  107. package/LICENSE.md +0 -3
  108. package/Shared/Views/CometChatCardView/cometchat-card-view/cometchat-card-view.component.d.ts +0 -71
  109. package/Shared/Views/CometChatCardView/cometchat-card-view.module.d.ts +0 -8
  110. package/esm2020/AI/AIEnabler.mjs +0 -70
  111. package/esm2020/AI/AIEnablerDecorator.mjs +0 -10
  112. package/esm2020/Shared/Views/CometChatCardView/cometchat-card-view/cometchat-card-view.component.mjs +0 -117
  113. 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==