stream-chat-angular 2.8.2 → 2.12.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/assets/i18n/en.d.ts +2 -0
- package/assets/version.d.ts +1 -1
- package/bundles/stream-chat-angular.umd.js +804 -338
- package/bundles/stream-chat-angular.umd.js.map +1 -1
- package/esm2015/assets/i18n/en.js +3 -1
- package/esm2015/assets/version.js +2 -2
- package/esm2015/lib/attachment-list/attachment-list.component.js +21 -8
- package/esm2015/lib/channel/channel.component.js +3 -2
- package/esm2015/lib/channel.service.js +191 -38
- package/esm2015/lib/chat-client.service.js +6 -1
- package/esm2015/lib/icon/icon.component.js +2 -2
- package/esm2015/lib/message/message.component.js +67 -42
- package/esm2015/lib/message-actions-box/message-actions-box.component.js +20 -9
- package/esm2015/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.js +35 -9
- package/esm2015/lib/message-input/message-input-config.service.js +1 -1
- package/esm2015/lib/message-input/message-input.component.js +69 -13
- package/esm2015/lib/message-input/textarea.directive.js +10 -2
- package/esm2015/lib/message-input/textarea.interface.js +1 -1
- package/esm2015/lib/message-list/message-list.component.js +130 -55
- package/esm2015/lib/message-preview.js +4 -2
- package/esm2015/lib/stream-chat.module.js +8 -3
- package/esm2015/lib/thread/thread.component.js +37 -0
- package/esm2015/lib/types.js +1 -1
- package/esm2015/public-api.js +2 -1
- package/fesm2015/stream-chat-angular.js +659 -250
- package/fesm2015/stream-chat-angular.js.map +1 -1
- package/lib/attachment-list/attachment-list.component.d.ts +8 -3
- package/lib/channel/channel.component.d.ts +2 -1
- package/lib/channel.service.d.ts +23 -7
- package/lib/chat-client.service.d.ts +1 -0
- package/lib/icon/icon.component.d.ts +1 -1
- package/lib/message/message.component.d.ts +26 -8
- package/lib/message-actions-box/message-actions-box.component.d.ts +4 -1
- package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +6 -3
- package/lib/message-input/message-input-config.service.d.ts +2 -1
- package/lib/message-input/message-input.component.d.ts +9 -2
- package/lib/message-input/textarea.directive.d.ts +3 -2
- package/lib/message-input/textarea.interface.d.ts +2 -1
- package/lib/message-list/message-list.component.d.ts +21 -7
- package/lib/message-preview.d.ts +1 -1
- package/lib/stream-chat.module.d.ts +5 -4
- package/lib/thread/thread.component.d.ts +18 -0
- package/lib/types.d.ts +7 -1
- package/package.json +2 -11
- package/public-api.d.ts +1 -0
- package/src/assets/i18n/en.ts +4 -0
- package/src/assets/version.ts +1 -1
|
@@ -7,35 +7,43 @@ import * as i2 from "../chat-client.service";
|
|
|
7
7
|
import * as i3 from "./image-load.service";
|
|
8
8
|
import * as i4 from "../message/message.component";
|
|
9
9
|
import * as i5 from "@angular/common";
|
|
10
|
+
import * as i6 from "@ngx-translate/core";
|
|
10
11
|
export class MessageListComponent {
|
|
11
12
|
constructor(channelService, chatClientService, imageLoadService) {
|
|
12
13
|
this.channelService = channelService;
|
|
13
14
|
this.chatClientService = chatClientService;
|
|
14
15
|
this.imageLoadService = imageLoadService;
|
|
15
|
-
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated https://getstream.io/chat/docs/sdk/angular/components/message_list/#caution-arereactionsenabled-deprecated
|
|
18
|
+
*/
|
|
19
|
+
this.areReactionsEnabled = undefined;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated https://getstream.io/chat/docs/sdk/angular/components/message_list/#caution-enabledmessageactions-deprecated
|
|
22
|
+
*/
|
|
16
23
|
/* eslint-disable-next-line @angular-eslint/no-input-rename */
|
|
17
|
-
this.enabledMessageActionsInput =
|
|
24
|
+
this.enabledMessageActionsInput = undefined;
|
|
25
|
+
this.mode = 'main';
|
|
18
26
|
this.enabledMessageActions = [];
|
|
19
27
|
this.class = 'str-chat-angular__main-panel-inner str-chat-angular__message-list-host';
|
|
20
28
|
this.unreadMessageCount = 0;
|
|
21
29
|
this.groupStyles = [];
|
|
22
30
|
this.authorizedMessageActions = ['flag'];
|
|
23
31
|
this.isUserScrolledUpThreshold = 300;
|
|
24
|
-
this.
|
|
32
|
+
this.subscriptions = [];
|
|
33
|
+
this.subscriptions.push(this.channelService.activeChannel$.subscribe((channel) => {
|
|
25
34
|
var _a;
|
|
26
|
-
this.
|
|
27
|
-
this.hasNewMessages = true;
|
|
28
|
-
this.isUserScrolledUp = false;
|
|
29
|
-
this.containerHeight = undefined;
|
|
30
|
-
this.olderMassagesLoaded = false;
|
|
31
|
-
this.oldestMessageDate = undefined;
|
|
32
|
-
this.unreadMessageCount = 0;
|
|
33
|
-
this.isNewMessageSentByUser = undefined;
|
|
35
|
+
this.resetScrollState();
|
|
34
36
|
const capabilites = (_a = channel === null || channel === void 0 ? void 0 : channel.data) === null || _a === void 0 ? void 0 : _a.own_capabilities;
|
|
35
37
|
if (capabilites) {
|
|
36
38
|
this.canReactToMessage = capabilites.indexOf('send-reaction') !== -1;
|
|
37
39
|
this.canReceiveReadEvents = capabilites.indexOf('read-events') !== -1;
|
|
38
40
|
this.authorizedMessageActions = [];
|
|
41
|
+
if (this.canReactToMessage) {
|
|
42
|
+
this.authorizedMessageActions.push('send-reaction');
|
|
43
|
+
}
|
|
44
|
+
if (this.canReceiveReadEvents) {
|
|
45
|
+
this.authorizedMessageActions.push('read-events');
|
|
46
|
+
}
|
|
39
47
|
if (capabilites.indexOf('flag-message') !== -1) {
|
|
40
48
|
this.authorizedMessageActions.push('flag');
|
|
41
49
|
}
|
|
@@ -53,47 +61,16 @@ export class MessageListComponent {
|
|
|
53
61
|
this.authorizedMessageActions.push('delete');
|
|
54
62
|
this.authorizedMessageActions.push('delete-any');
|
|
55
63
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
});
|
|
59
|
-
this.messages$ = this.channelService.activeChannelMessages$.pipe(tap((messages) => {
|
|
60
|
-
var _a, _b, _c, _d, _e;
|
|
61
|
-
if (messages.length === 0) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
const currentLatestMessageDate = messages[messages.length - 1].created_at;
|
|
65
|
-
if (!this.latestMessageDate ||
|
|
66
|
-
((_a = this.latestMessageDate) === null || _a === void 0 ? void 0 : _a.getTime()) < currentLatestMessageDate.getTime()) {
|
|
67
|
-
this.latestMessageDate = currentLatestMessageDate;
|
|
68
|
-
this.hasNewMessages = true;
|
|
69
|
-
this.isNewMessageSentByUser =
|
|
70
|
-
((_b = messages[messages.length - 1].user) === null || _b === void 0 ? void 0 : _b.id) ===
|
|
71
|
-
((_d = (_c = this.chatClientService.chatClient) === null || _c === void 0 ? void 0 : _c.user) === null || _d === void 0 ? void 0 : _d.id);
|
|
72
|
-
if (this.isUserScrolledUp) {
|
|
73
|
-
this.unreadMessageCount++;
|
|
64
|
+
if (capabilites.indexOf('send-reply') !== -1) {
|
|
65
|
+
this.authorizedMessageActions.push('send-reply');
|
|
74
66
|
}
|
|
67
|
+
if (capabilites.indexOf('quote-message') !== -1) {
|
|
68
|
+
this.authorizedMessageActions.push('quote-message');
|
|
69
|
+
}
|
|
70
|
+
this.setEnabledActions();
|
|
75
71
|
}
|
|
76
|
-
const currentOldestMessageDate = messages[0].created_at;
|
|
77
|
-
if (!this.oldestMessageDate) {
|
|
78
|
-
this.oldestMessageDate = currentOldestMessageDate;
|
|
79
|
-
}
|
|
80
|
-
else if (((_e = this.oldestMessageDate) === null || _e === void 0 ? void 0 : _e.getTime()) > currentOldestMessageDate.getTime()) {
|
|
81
|
-
this.oldestMessageDate = currentOldestMessageDate;
|
|
82
|
-
this.olderMassagesLoaded = true;
|
|
83
|
-
}
|
|
84
|
-
}), tap((messages) => {
|
|
85
|
-
this.groupStyles = messages.map((m, i) => getGroupStyles(m, messages[i - 1], messages[i + 1]));
|
|
86
|
-
}), tap((messages) => {
|
|
87
|
-
var _a;
|
|
88
|
-
return (this.lastSentMessageId = (_a = [...messages]
|
|
89
|
-
.reverse()
|
|
90
|
-
.find((m) => {
|
|
91
|
-
var _a, _b, _c;
|
|
92
|
-
return ((_a = m.user) === null || _a === void 0 ? void 0 : _a.id) === ((_c = (_b = this.chatClientService.chatClient) === null || _b === void 0 ? void 0 : _b.user) === null || _c === void 0 ? void 0 : _c.id) &&
|
|
93
|
-
m.status !== 'sending';
|
|
94
|
-
})) === null || _a === void 0 ? void 0 : _a.id);
|
|
95
72
|
}));
|
|
96
|
-
this.imageLoadService.imageLoad$.subscribe(() => {
|
|
73
|
+
this.subscriptions.push(this.imageLoadService.imageLoad$.subscribe(() => {
|
|
97
74
|
if (!this.isUserScrolledUp) {
|
|
98
75
|
this.scrollToBottom();
|
|
99
76
|
// Hacky and unreliable workaround to scroll down after loaded images move the scrollbar
|
|
@@ -101,12 +78,27 @@ export class MessageListComponent {
|
|
|
101
78
|
this.scrollToBottom();
|
|
102
79
|
}, 300);
|
|
103
80
|
}
|
|
104
|
-
});
|
|
81
|
+
}));
|
|
82
|
+
this.subscriptions.push(this.channelService.activeParentMessage$.subscribe((message) => {
|
|
83
|
+
if (message &&
|
|
84
|
+
this.parentMessage &&
|
|
85
|
+
message.id !== this.parentMessage.id &&
|
|
86
|
+
this.mode === 'thread') {
|
|
87
|
+
this.resetScrollState();
|
|
88
|
+
}
|
|
89
|
+
this.parentMessage = message;
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
ngOnInit() {
|
|
93
|
+
this.setMessages$();
|
|
105
94
|
}
|
|
106
95
|
ngOnChanges(changes) {
|
|
107
96
|
if (changes.enabledMessageActionsInput) {
|
|
108
97
|
this.setEnabledActions();
|
|
109
98
|
}
|
|
99
|
+
if (changes.mode) {
|
|
100
|
+
this.setMessages$();
|
|
101
|
+
}
|
|
110
102
|
}
|
|
111
103
|
ngAfterViewChecked() {
|
|
112
104
|
if (this.hasNewMessages) {
|
|
@@ -125,6 +117,15 @@ export class MessageListComponent {
|
|
|
125
117
|
this.containerHeight = this.scrollContainer.nativeElement.scrollHeight;
|
|
126
118
|
this.olderMassagesLoaded = false;
|
|
127
119
|
}
|
|
120
|
+
else if (this.containerHeight !== undefined &&
|
|
121
|
+
this.containerHeight < this.scrollContainer.nativeElement.scrollHeight &&
|
|
122
|
+
!this.isUserScrolledUp) {
|
|
123
|
+
this.scrollToBottom();
|
|
124
|
+
this.containerHeight = this.scrollContainer.nativeElement.scrollHeight;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
ngOnDestroy() {
|
|
128
|
+
this.subscriptions.forEach((s) => s.unsubscribe());
|
|
128
129
|
}
|
|
129
130
|
trackByMessageId(index, item) {
|
|
130
131
|
return item.id;
|
|
@@ -134,6 +135,7 @@ export class MessageListComponent {
|
|
|
134
135
|
this.scrollContainer.nativeElement.scrollHeight;
|
|
135
136
|
}
|
|
136
137
|
scrolled() {
|
|
138
|
+
var _a, _b;
|
|
137
139
|
this.isUserScrolledUp =
|
|
138
140
|
this.scrollContainer.nativeElement.scrollHeight -
|
|
139
141
|
(this.scrollContainer.nativeElement.scrollTop +
|
|
@@ -142,20 +144,36 @@ export class MessageListComponent {
|
|
|
142
144
|
if (!this.isUserScrolledUp) {
|
|
143
145
|
this.unreadMessageCount = 0;
|
|
144
146
|
}
|
|
145
|
-
if (this.scrollContainer.nativeElement.scrollTop
|
|
147
|
+
if (this.scrollContainer.nativeElement.scrollTop <=
|
|
148
|
+
(((_a = this.parentMessageElement) === null || _a === void 0 ? void 0 : _a.nativeElement.clientHeight) || 0) &&
|
|
149
|
+
(this.prevScrollTop === undefined ||
|
|
150
|
+
this.prevScrollTop >
|
|
151
|
+
(((_b = this.parentMessageElement) === null || _b === void 0 ? void 0 : _b.nativeElement.clientHeight) || 0))) {
|
|
146
152
|
this.containerHeight = this.scrollContainer.nativeElement.scrollHeight;
|
|
147
|
-
|
|
153
|
+
this.mode === 'main'
|
|
154
|
+
? void this.channelService.loadMoreMessages()
|
|
155
|
+
: void this.channelService.loadMoreThreadReplies();
|
|
148
156
|
}
|
|
157
|
+
this.prevScrollTop = this.scrollContainer.nativeElement.scrollTop;
|
|
149
158
|
}
|
|
150
159
|
preserveScrollbarPosition() {
|
|
151
160
|
this.scrollContainer.nativeElement.scrollTop =
|
|
152
|
-
this.
|
|
161
|
+
(this.prevScrollTop || 0) +
|
|
162
|
+
(this.scrollContainer.nativeElement.scrollHeight - this.containerHeight);
|
|
153
163
|
}
|
|
154
164
|
setEnabledActions() {
|
|
155
165
|
this.enabledMessageActions = [];
|
|
156
166
|
if (!this.enabledMessageActionsInput) {
|
|
167
|
+
this.enabledMessageActions = this.authorizedMessageActions;
|
|
157
168
|
return;
|
|
158
169
|
}
|
|
170
|
+
this.enabledMessageActionsInput = [
|
|
171
|
+
...this.enabledMessageActionsInput,
|
|
172
|
+
'send-reaction',
|
|
173
|
+
'read-events',
|
|
174
|
+
'send-reply',
|
|
175
|
+
'quote-message',
|
|
176
|
+
];
|
|
159
177
|
this.enabledMessageActionsInput.forEach((action) => {
|
|
160
178
|
const isAuthorized = this.authorizedMessageActions.indexOf(action) !== -1;
|
|
161
179
|
if (isAuthorized) {
|
|
@@ -163,9 +181,61 @@ export class MessageListComponent {
|
|
|
163
181
|
}
|
|
164
182
|
});
|
|
165
183
|
}
|
|
184
|
+
setMessages$() {
|
|
185
|
+
this.messages$ = (this.mode === 'main'
|
|
186
|
+
? this.channelService.activeChannelMessages$
|
|
187
|
+
: this.channelService.activeThreadMessages$).pipe(tap((messages) => {
|
|
188
|
+
var _a, _b, _c, _d, _e;
|
|
189
|
+
if (messages.length === 0) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
const currentLatestMessageDate = messages[messages.length - 1].created_at;
|
|
193
|
+
if (!this.latestMessageDate ||
|
|
194
|
+
((_a = this.latestMessageDate) === null || _a === void 0 ? void 0 : _a.getTime()) < currentLatestMessageDate.getTime()) {
|
|
195
|
+
this.latestMessageDate = currentLatestMessageDate;
|
|
196
|
+
this.hasNewMessages = true;
|
|
197
|
+
this.isNewMessageSentByUser =
|
|
198
|
+
((_b = messages[messages.length - 1].user) === null || _b === void 0 ? void 0 : _b.id) ===
|
|
199
|
+
((_d = (_c = this.chatClientService.chatClient) === null || _c === void 0 ? void 0 : _c.user) === null || _d === void 0 ? void 0 : _d.id);
|
|
200
|
+
if (this.isUserScrolledUp) {
|
|
201
|
+
this.unreadMessageCount++;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
const currentOldestMessageDate = messages[0].created_at;
|
|
205
|
+
if (!this.oldestMessageDate) {
|
|
206
|
+
this.oldestMessageDate = currentOldestMessageDate;
|
|
207
|
+
}
|
|
208
|
+
else if (((_e = this.oldestMessageDate) === null || _e === void 0 ? void 0 : _e.getTime()) > currentOldestMessageDate.getTime()) {
|
|
209
|
+
this.oldestMessageDate = currentOldestMessageDate;
|
|
210
|
+
this.olderMassagesLoaded = true;
|
|
211
|
+
}
|
|
212
|
+
}), tap((messages) => {
|
|
213
|
+
this.groupStyles = messages.map((m, i) => getGroupStyles(m, messages[i - 1], messages[i + 1]));
|
|
214
|
+
}), tap((messages) => {
|
|
215
|
+
var _a;
|
|
216
|
+
return (this.lastSentMessageId = (_a = [...messages]
|
|
217
|
+
.reverse()
|
|
218
|
+
.find((m) => {
|
|
219
|
+
var _a, _b, _c;
|
|
220
|
+
return ((_a = m.user) === null || _a === void 0 ? void 0 : _a.id) === ((_c = (_b = this.chatClientService.chatClient) === null || _b === void 0 ? void 0 : _b.user) === null || _c === void 0 ? void 0 : _c.id) &&
|
|
221
|
+
m.status !== 'sending';
|
|
222
|
+
})) === null || _a === void 0 ? void 0 : _a.id);
|
|
223
|
+
}));
|
|
224
|
+
}
|
|
225
|
+
resetScrollState() {
|
|
226
|
+
this.latestMessageDate = undefined;
|
|
227
|
+
this.hasNewMessages = true;
|
|
228
|
+
this.isUserScrolledUp = false;
|
|
229
|
+
this.containerHeight = undefined;
|
|
230
|
+
this.olderMassagesLoaded = false;
|
|
231
|
+
this.oldestMessageDate = undefined;
|
|
232
|
+
this.unreadMessageCount = 0;
|
|
233
|
+
this.prevScrollTop = undefined;
|
|
234
|
+
this.isNewMessageSentByUser = undefined;
|
|
235
|
+
}
|
|
166
236
|
}
|
|
167
237
|
MessageListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: MessageListComponent, deps: [{ token: i1.ChannelService }, { token: i2.ChatClientService }, { token: i3.ImageLoadService }], target: i0.ɵɵFactoryTarget.Component });
|
|
168
|
-
MessageListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: MessageListComponent, selector: "stream-message-list", inputs: { messageTemplate: "messageTemplate", messageInputTemplate: "messageInputTemplate", mentionTemplate: "mentionTemplate", areReactionsEnabled: "areReactionsEnabled", enabledMessageActionsInput: ["enabledMessageActions", "enabledMessageActionsInput"] }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #scrollContainer\n data-testid=\"scroll-container\"\n class=\"str-chat__list\"\n (scroll)=\"scrolled()\"\n>\n <div class=\"str-chat__reverse-infinite-scroll\">\n <ul class=\"str-chat__ul\">\n <li\n data-testclass=\"message\"\n *ngFor=\"\n let message of messages$ | async;\n let i = index;\n trackBy: trackByMessageId\n \"\n class=\"str-chat__li str-chat__li--{{ groupStyles[i] }}\"\n >\n <ng-container
|
|
238
|
+
MessageListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: MessageListComponent, selector: "stream-message-list", inputs: { messageTemplate: "messageTemplate", messageInputTemplate: "messageInputTemplate", mentionTemplate: "mentionTemplate", areReactionsEnabled: "areReactionsEnabled", enabledMessageActionsInput: ["enabledMessageActions", "enabledMessageActionsInput"], mode: "mode" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true }, { propertyName: "parentMessageElement", first: true, predicate: ["parentMessageElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #scrollContainer\n data-testid=\"scroll-container\"\n class=\"str-chat__list\"\n (scroll)=\"scrolled()\"\n>\n <div class=\"str-chat__reverse-infinite-scroll\">\n <ul class=\"str-chat__ul\">\n <li\n #parentMessageElement\n *ngIf=\"mode === 'thread'\"\n data-testid=\"parent-message\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n messageTemplateContainer;\n context: { message: parentMessage }\n \"\n ></ng-container>\n <div class=\"str-chat__thread-start\" translate>\n streamChat.Start of a new thread\n </div>\n </li>\n <li\n data-testclass=\"message\"\n *ngFor=\"\n let message of messages$ | async;\n let i = index;\n trackBy: trackByMessageId\n \"\n class=\"str-chat__li str-chat__li--{{ groupStyles[i] }}\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n messageTemplateContainer;\n context: { message: message }\n \"\n ></ng-container>\n </li>\n </ul>\n </div>\n</div>\n<div class=\"str-chat__list-notifications\">\n <button\n data-testid=\"scroll-to-bottom\"\n *ngIf=\"isUserScrolledUp\"\n class=\"\n str-chat__message-notification\n str-chat__message-notification-right\n str-chat__message-notification-scroll-down\n \"\n (keyup.enter)=\"scrollToBottom()\"\n (click)=\"scrollToBottom()\"\n >\n <div\n *ngIf=\"unreadMessageCount > 0\"\n class=\"\n str-chat__message-notification\n str-chat__message-notification-scroll-down-unread-count\n \"\n >\n {{ unreadMessageCount }}\n </div>\n </button>\n</div>\n\n<ng-template #messageTemplateContainer let-message=\"message\">\n <ng-container *ngIf=\"messageTemplate; else defaultMessageTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n messageTemplate;\n context: {\n message: message,\n areReactionsEnabled: areReactionsEnabled,\n canReactToMessage: canReactToMessage,\n lastSentMessageId: !!(\n lastSentMessageId && message?.id === lastSentMessageId\n ),\n canReceiveReadEvents: canReceiveReadEvents,\n messageInputTemplate: messageInputTemplate,\n mentionTemplate: mentionTemplate,\n mode: mode\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultMessageTemplate>\n <stream-message\n [message]=\"message\"\n [areReactionsEnabled]=\"areReactionsEnabled\"\n [canReactToMessage]=\"canReactToMessage\"\n [isLastSentMessage]=\"\n !!(lastSentMessageId && message?.id === lastSentMessageId)\n \"\n [enabledMessageActions]=\"enabledMessageActions\"\n [canReceiveReadEvents]=\"canReceiveReadEvents\"\n [messageInputTemplate]=\"messageInputTemplate\"\n [mentionTemplate]=\"mentionTemplate\"\n [mode]=\"mode\"\n ></stream-message>\n </ng-template>\n</ng-template>\n", components: [{ type: i4.MessageComponent, selector: "stream-message", inputs: ["messageInputTemplate", "mentionTemplate", "message", "enabledMessageActions", "areReactionsEnabled", "canReactToMessage", "isLastSentMessage", "canReceiveReadEvents", "mode"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i5.AsyncPipe } });
|
|
169
239
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: MessageListComponent, decorators: [{
|
|
170
240
|
type: Component,
|
|
171
241
|
args: [{
|
|
@@ -184,11 +254,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
184
254
|
}], enabledMessageActionsInput: [{
|
|
185
255
|
type: Input,
|
|
186
256
|
args: ['enabledMessageActions']
|
|
257
|
+
}], mode: [{
|
|
258
|
+
type: Input
|
|
187
259
|
}], class: [{
|
|
188
260
|
type: HostBinding,
|
|
189
261
|
args: ['class']
|
|
190
262
|
}], scrollContainer: [{
|
|
191
263
|
type: ViewChild,
|
|
192
264
|
args: ['scrollContainer']
|
|
265
|
+
}], parentMessageElement: [{
|
|
266
|
+
type: ViewChild,
|
|
267
|
+
args: ['parentMessageElement']
|
|
193
268
|
}] } });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLWxpc3QvbWVzc2FnZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLWxpc3QvbWVzc2FnZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxjQUFjLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVE1RCxNQUFNLE9BQU8sb0JBQW9CO0lBNkIvQixZQUNVLGNBQThCLEVBQzlCLGlCQUFvQyxFQUNwQyxnQkFBa0M7UUFGbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTVCbkMsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLDhEQUE4RDtRQUM5QiwrQkFBMEIsR0FDeEQsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFJdkQsMEJBQXFCLEdBQXFCLEVBQUUsQ0FBQztRQUNmLFVBQUssR0FDakMsd0VBQXdFLENBQUM7UUFDM0UsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQVV2Qiw2QkFBd0IsR0FBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3Qyw4QkFBeUIsR0FBRyxH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O3NCQUFsQyxXQUFXO3VCQUFDLE9BQU87Z0JBT1osZUFBZTtzQkFEdEIsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhbm5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN0cmVhbU1lc3NhZ2UgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBDaGF0Q2xpZW50U2VydmljZSB9IGZyb20gJy4uL2NoYXQtY2xpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0R3JvdXBTdHlsZXMsIEdyb3VwU3R5bGUgfSBmcm9tICcuL2dyb3VwLXN0eWxlcyc7XG5pbXBvcnQgeyBJbWFnZUxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9pbWFnZS1sb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWVzc2FnZUFjdGlvbnMgfSBmcm9tICcuLi9tZXNzYWdlLWFjdGlvbnMtYm94L21lc3NhZ2UtYWN0aW9ucy1ib3guY29tcG9uZW50JztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0cmVhbS1tZXNzYWdlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtZXNzYWdlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1lc3NhZ2VJbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtZW50aW9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGFyZVJlYWN0aW9uc0VuYWJsZWQgPSB0cnVlO1xuICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZSAqL1xuICBASW5wdXQoJ2VuYWJsZWRNZXNzYWdlQWN0aW9ucycpIGVuYWJsZWRNZXNzYWdlQWN0aW9uc0lucHV0OiBNZXNzYWdlQWN0aW9uc1tdID1cbiAgICBbJ2ZsYWcnLCAnZWRpdCcsICdlZGl0LWFueScsICdkZWxldGUnLCAnZGVsZXRlLWFueSddO1xuICBtZXNzYWdlcyQhOiBPYnNlcnZhYmxlPFN0cmVhbU1lc3NhZ2VbXT47XG4gIGNhblJlYWN0VG9NZXNzYWdlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBjYW5SZWNlaXZlUmVhZEV2ZW50czogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgZW5hYmxlZE1lc3NhZ2VBY3Rpb25zOiBNZXNzYWdlQWN0aW9uc1tdID0gW107XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwcml2YXRlIGNsYXNzID1cbiAgICAnc3RyLWNoYXQtYW5ndWxhcl9fbWFpbi1wYW5lbC1pbm5lciBzdHItY2hhdC1hbmd1bGFyX19tZXNzYWdlLWxpc3QtaG9zdCc7XG4gIHVucmVhZE1lc3NhZ2VDb3VudCA9IDA7XG4gIGlzVXNlclNjcm9sbGVkVXA6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGdyb3VwU3R5bGVzOiBHcm91cFN0eWxlW10gPSBbXTtcbiAgbGFzdFNlbnRNZXNzYWdlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQFZpZXdDaGlsZCgnc2Nyb2xsQ29udGFpbmVyJylcbiAgcHJpdmF0ZSBzY3JvbGxDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgcHJpdmF0ZSBsYXRlc3RNZXNzYWdlRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBoYXNOZXdNZXNzYWdlczogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBjb250YWluZXJIZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvbGRlc3RNZXNzYWdlRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvbGRlck1hc3NhZ2VzTG9hZGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGlzTmV3TWVzc2FnZVNlbnRCeVVzZXI6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgYXV0aG9yaXplZE1lc3NhZ2VBY3Rpb25zOiBNZXNzYWdlQWN0aW9uc1tdID0gWydmbGFnJ107XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNVc2VyU2Nyb2xsZWRVcFRocmVzaG9sZCA9IDMwMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZSxcbiAgICBwcml2YXRlIGNoYXRDbGllbnRTZXJ2aWNlOiBDaGF0Q2xpZW50U2VydmljZSxcbiAgICBwcml2YXRlIGltYWdlTG9hZFNlcnZpY2U6IEltYWdlTG9hZFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jaGFubmVsU2VydmljZS5hY3RpdmVDaGFubmVsJC5zdWJzY3JpYmUoKGNoYW5uZWwpID0+IHtcbiAgICAgIHRoaXMubGF0ZXN0TWVzc2FnZURhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmhhc05ld01lc3NhZ2VzID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNVc2VyU2Nyb2xsZWRVcCA9IGZhbHNlO1xuICAgICAgdGhpcy5jb250YWluZXJIZWlnaHQgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLm9sZGVyTWFzc2FnZXNMb2FkZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMub2xkZXN0TWVzc2FnZURhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnVucmVhZE1lc3NhZ2VDb3VudCA9IDA7XG4gICAgICB0aGlzLmlzTmV3TWVzc2FnZVNlbnRCeVVzZXIgPSB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBjYXBhYmlsaXRlcyA9IGNoYW5uZWw/LmRhdGE/Lm93bl9jYXBhYmlsaXRpZXMgYXMgc3RyaW5nW107XG4gICAgICBpZiAoY2FwYWJpbGl0ZXMpIHtcbiAgICAgICAgdGhpcy5jYW5SZWFjdFRvTWVzc2FnZSA9IGNhcGFiaWxpdGVzLmluZGV4T2YoJ3NlbmQtcmVhY3Rpb24nKSAhPT0gLTE7XG4gICAgICAgIHRoaXMuY2FuUmVjZWl2ZVJlYWRFdmVudHMgPSBjYXBhYmlsaXRlcy5pbmRleE9mKCdyZWFkLWV2ZW50cycpICE9PSAtMTtcbiAgICAgICAgdGhpcy5hdXRob3JpemVkTWVzc2FnZUFjdGlvbnMgPSBbXTtcbiAgICAgICAgaWYgKGNhcGFiaWxpdGVzLmluZGV4T2YoJ2ZsYWctbWVzc2FnZScpICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMuYXV0aG9yaXplZE1lc3NhZ2VBY3Rpb25zLnB1c2goJ2ZsYWcnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FwYWJpbGl0ZXMuaW5kZXhPZigndXBkYXRlLW93bi1tZXNzYWdlJykgIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5hdXRob3JpemVkTWVzc2FnZUFjdGlvbnMucHVzaCgnZWRpdCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXBhYmlsaXRlcy5pbmRleE9mKCd1cGRhdGUtYW55LW1lc3NhZ2UnKSAhPT0gLTEpIHtcbiAgICAgICAgICB0aGlzLmF1dGhvcml6ZWRNZXNzYWdlQWN0aW9ucy5wdXNoKCdlZGl0Jyk7XG4gICAgICAgICAgdGhpcy5hdXRob3JpemVkTWVzc2FnZUFjdGlvbnMucHVzaCgnZWRpdC1hbnknKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FwYWJpbGl0ZXMuaW5kZXhPZignZGVsZXRlLW93bi1tZXNzYWdlJykgIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5hdXRob3JpemVkTWVzc2FnZUFjdGlvbnMucHVzaCgnZGVsZXRlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhcGFiaWxpdGVzLmluZGV4T2YoJ2RlbGV0ZS1hbnktbWVzc2FnZScpICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMuYXV0aG9yaXplZE1lc3NhZ2VBY3Rpb25zLnB1c2goJ2RlbGV0ZScpO1xuICAgICAgICAgIHRoaXMuYXV0aG9yaXplZE1lc3NhZ2VBY3Rpb25zLnB1c2goJ2RlbGV0ZS1hbnknKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldEVuYWJsZWRBY3Rpb25zKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5tZXNzYWdlcyQgPSB0aGlzLmNoYW5uZWxTZXJ2aWNlLmFjdGl2ZUNoYW5uZWxNZXNzYWdlcyQucGlwZShcbiAgICAgIHRhcCgobWVzc2FnZXMpID0+IHtcbiAgICAgICAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50TGF0ZXN0TWVzc2FnZURhdGUgPVxuICAgICAgICAgIG1lc3NhZ2VzW21lc3NhZ2VzLmxlbmd0aCAtIDFdLmNyZWF0ZWRfYXQ7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhdGhpcy5sYXRlc3RNZXNzYWdlRGF0ZSB8fFxuICAgICAgICAgIHRoaXMubGF0ZXN0TWVzc2FnZURhdGU/LmdldFRpbWUoKSA8IGN1cnJlbnRMYXRlc3RNZXNzYWdlRGF0ZS5nZXRUaW1lKClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5sYXRlc3RNZXNzYWdlRGF0ZSA9IGN1cnJlbnRMYXRlc3RNZXNzYWdlRGF0ZTtcbiAgICAgICAgICB0aGlzLmhhc05ld01lc3NhZ2VzID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmlzTmV3TWVzc2FnZVNlbnRCeVVzZXIgPVxuICAgICAgICAgICAgbWVzc2FnZXNbbWVzc2FnZXMubGVuZ3RoIC0gMV0udXNlcj8uaWQgPT09XG4gICAgICAgICAgICB0aGlzLmNoYXRDbGllbnRTZXJ2aWNlLmNoYXRDbGllbnQ/LnVzZXI/LmlkO1xuICAgICAgICAgIGlmICh0aGlzLmlzVXNlclNjcm9sbGVkVXApIHtcbiAgICAgICAgICAgIHRoaXMudW5yZWFkTWVzc2FnZUNvdW50Kys7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPbGRlc3RNZXNzYWdlRGF0ZSA9IG1lc3NhZ2VzWzBdLmNyZWF0ZWRfYXQ7XG4gICAgICAgIGlmICghdGhpcy5vbGRlc3RNZXNzYWdlRGF0ZSkge1xuICAgICAgICAgIHRoaXMub2xkZXN0TWVzc2FnZURhdGUgPSBjdXJyZW50T2xkZXN0TWVzc2FnZURhdGU7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgdGhpcy5vbGRlc3RNZXNzYWdlRGF0ZT8uZ2V0VGltZSgpID4gY3VycmVudE9sZGVzdE1lc3NhZ2VEYXRlLmdldFRpbWUoKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLm9sZGVzdE1lc3NhZ2VEYXRlID0gY3VycmVudE9sZGVzdE1lc3NhZ2VEYXRlO1xuICAgICAgICAgIHRoaXMub2xkZXJNYXNzYWdlc0xvYWRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGFwKChtZXNzYWdlcykgPT4ge1xuICAgICAgICB0aGlzLmdyb3VwU3R5bGVzID0gbWVzc2FnZXMubWFwKChtLCBpKSA9PlxuICAgICAgICAgIGdldEdyb3VwU3R5bGVzKG0sIG1lc3NhZ2VzW2kgLSAxXSwgbWVzc2FnZXNbaSArIDFdKVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICB0YXAoXG4gICAgICAgIChtZXNzYWdlcykgPT5cbiAgICAgICAgICAodGhpcy5sYXN0U2VudE1lc3NhZ2VJZCA9IFsuLi5tZXNzYWdlc11cbiAgICAgICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgICAgIC5maW5kKFxuICAgICAgICAgICAgICAobSkgPT5cbiAgICAgICAgICAgICAgICBtLnVzZXI/LmlkID09PSB0aGlzLmNoYXRDbGllbnRTZXJ2aWNlLmNoYXRDbGllbnQ/LnVzZXI/LmlkICYmXG4gICAgICAgICAgICAgICAgbS5zdGF0dXMgIT09ICdzZW5kaW5nJ1xuICAgICAgICAgICAgKT8uaWQpXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLmltYWdlTG9hZFNlcnZpY2UuaW1hZ2VMb2FkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzVXNlclNjcm9sbGVkVXApIHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xuICAgICAgICAvLyBIYWNreSBhbmQgdW5yZWxpYWJsZSB3b3JrYXJvdW5kIHRvIHNjcm9sbCBkb3duIGFmdGVyIGxvYWRlZCBpbWFnZXMgbW92ZSB0aGUgc2Nyb2xsYmFyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20oKTtcbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5lbmFibGVkTWVzc2FnZUFjdGlvbnNJbnB1dCkge1xuICAgICAgdGhpcy5zZXRFbmFibGVkQWN0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICBpZiAodGhpcy5oYXNOZXdNZXNzYWdlcykge1xuICAgICAgaWYgKCF0aGlzLmlzVXNlclNjcm9sbGVkVXAgfHwgdGhpcy5pc05ld01lc3NhZ2VTZW50QnlVc2VyKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20oKTtcbiAgICAgICAgLy8gSGFja3kgYW5kIHVucmVsaWFibGUgd29ya2Fyb3VuZCB0byBzY3JvbGwgZG93biBhZnRlciBsb2FkZWQgaW1hZ2VzIG1vdmUgdGhlIHNjcm9sbGJhclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgICB0aGlzLmhhc05ld01lc3NhZ2VzID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbnRhaW5lckhlaWdodCA9IHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAgIH0gZWxzZSBpZiAodGhpcy5vbGRlck1hc3NhZ2VzTG9hZGVkKSB7XG4gICAgICB0aGlzLnByZXNlcnZlU2Nyb2xsYmFyUG9zaXRpb24oKTtcbiAgICAgIHRoaXMuY29udGFpbmVySGVpZ2h0ID0gdGhpcy5zY3JvbGxDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgICB0aGlzLm9sZGVyTWFzc2FnZXNMb2FkZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0cmFja0J5TWVzc2FnZUlkKGluZGV4OiBudW1iZXIsIGl0ZW06IFN0cmVhbU1lc3NhZ2UpIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxuXG4gIHNjcm9sbFRvQm90dG9tKCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICB9XG5cbiAgc2Nyb2xsZWQoKSB7XG4gICAgdGhpcy5pc1VzZXJTY3JvbGxlZFVwID1cbiAgICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC1cbiAgICAgICAgKHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wICtcbiAgICAgICAgICB0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCkgPlxuICAgICAgdGhpcy5pc1VzZXJTY3JvbGxlZFVwVGhyZXNob2xkO1xuICAgIGlmICghdGhpcy5pc1VzZXJTY3JvbGxlZFVwKSB7XG4gICAgICB0aGlzLnVucmVhZE1lc3NhZ2VDb3VudCA9IDA7XG4gICAgfVxuICAgIGlmICh0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9PT0gMCkge1xuICAgICAgdGhpcy5jb250YWluZXJIZWlnaHQgPSB0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICAgIHZvaWQgdGhpcy5jaGFubmVsU2VydmljZS5sb2FkTW9yZU1lc3NhZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcmVzZXJ2ZVNjcm9sbGJhclBvc2l0aW9uKCkge1xuICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID1cbiAgICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gdGhpcy5jb250YWluZXJIZWlnaHQhO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFbmFibGVkQWN0aW9ucygpIHtcbiAgICB0aGlzLmVuYWJsZWRNZXNzYWdlQWN0aW9ucyA9IFtdO1xuICAgIGlmICghdGhpcy5lbmFibGVkTWVzc2FnZUFjdGlvbnNJbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmVuYWJsZWRNZXNzYWdlQWN0aW9uc0lucHV0LmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgY29uc3QgaXNBdXRob3JpemVkID0gdGhpcy5hdXRob3JpemVkTWVzc2FnZUFjdGlvbnMuaW5kZXhPZihhY3Rpb24pICE9PSAtMTtcbiAgICAgIGlmIChpc0F1dGhvcml6ZWQpIHtcbiAgICAgICAgdGhpcy5lbmFibGVkTWVzc2FnZUFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gICNzY3JvbGxDb250YWluZXJcbiAgZGF0YS10ZXN0aWQ9XCJzY3JvbGwtY29udGFpbmVyXCJcbiAgY2xhc3M9XCJzdHItY2hhdF9fbGlzdFwiXG4gIChzY3JvbGwpPVwic2Nyb2xsZWQoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fcmV2ZXJzZS1pbmZpbml0ZS1zY3JvbGxcIj5cbiAgICA8dWwgY2xhc3M9XCJzdHItY2hhdF9fdWxcIj5cbiAgICAgIDxsaVxuICAgICAgICBkYXRhLXRlc3RjbGFzcz1cIm1lc3NhZ2VcIlxuICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICBsZXQgbWVzc2FnZSBvZiBtZXNzYWdlcyQgfCBhc3luYztcbiAgICAgICAgICBsZXQgaSA9IGluZGV4O1xuICAgICAgICAgIHRyYWNrQnk6IHRyYWNrQnlNZXNzYWdlSWRcbiAgICAgICAgXCJcbiAgICAgICAgY2xhc3M9XCJzdHItY2hhdF9fbGkgc3RyLWNoYXRfX2xpLS17eyBncm91cFN0eWxlc1tpXSB9fVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtZXNzYWdlVGVtcGxhdGU7IGVsc2UgZGVmYXVsdE1lc3NhZ2VUZW1wbGF0ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIG1lc3NhZ2VUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgYXJlUmVhY3Rpb25zRW5hYmxlZDogYXJlUmVhY3Rpb25zRW5hYmxlZCxcbiAgICAgICAgICAgICAgICBjYW5SZWFjdFRvTWVzc2FnZTogY2FuUmVhY3RUb01lc3NhZ2UsXG4gICAgICAgICAgICAgICAgbGFzdFNlbnRNZXNzYWdlSWQ6ICEhKFxuICAgICAgICAgICAgICAgICAgbGFzdFNlbnRNZXNzYWdlSWQgJiYgbWVzc2FnZT8uaWQgPT09IGxhc3RTZW50TWVzc2FnZUlkXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBjYW5SZWNlaXZlUmVhZEV2ZW50czogY2FuUmVjZWl2ZVJlYWRFdmVudHMsXG4gICAgICAgICAgICAgICAgbWVzc2FnZUlucHV0VGVtcGxhdGU6IG1lc3NhZ2VJbnB1dFRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIG1lbnRpb25UZW1wbGF0ZTogbWVudGlvblRlbXBsYXRlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TWVzc2FnZVRlbXBsYXRlPlxuICAgICAgICAgIDxzdHJlYW0tbWVzc2FnZVxuICAgICAgICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXG4gICAgICAgICAgICBbYXJlUmVhY3Rpb25zRW5hYmxlZF09XCJhcmVSZWFjdGlvbnNFbmFibGVkXCJcbiAgICAgICAgICAgIFtjYW5SZWFjdFRvTWVzc2FnZV09XCJjYW5SZWFjdFRvTWVzc2FnZVwiXG4gICAgICAgICAgICBbaXNMYXN0U2VudE1lc3NhZ2VdPVwiXG4gICAgICAgICAgICAgICEhKGxhc3RTZW50TWVzc2FnZUlkICYmIG1lc3NhZ2U/LmlkID09PSBsYXN0U2VudE1lc3NhZ2VJZClcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbZW5hYmxlZE1lc3NhZ2VBY3Rpb25zXT1cImVuYWJsZWRNZXNzYWdlQWN0aW9uc1wiXG4gICAgICAgICAgICBbY2FuUmVjZWl2ZVJlYWRFdmVudHNdPVwiY2FuUmVjZWl2ZVJlYWRFdmVudHNcIlxuICAgICAgICAgICAgW21lc3NhZ2VJbnB1dFRlbXBsYXRlXT1cIm1lc3NhZ2VJbnB1dFRlbXBsYXRlXCJcbiAgICAgICAgICAgIFttZW50aW9uVGVtcGxhdGVdPVwibWVudGlvblRlbXBsYXRlXCJcbiAgICAgICAgICA+PC9zdHJlYW0tbWVzc2FnZT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbGlzdC1ub3RpZmljYXRpb25zXCI+XG4gIDxidXR0b25cbiAgICBkYXRhLXRlc3RpZD1cInNjcm9sbC10by1ib3R0b21cIlxuICAgICpuZ0lmPVwiaXNVc2VyU2Nyb2xsZWRVcFwiXG4gICAgY2xhc3M9XCJcbiAgICAgIHN0ci1jaGF0X19tZXNzYWdlLW5vdGlmaWNhdGlvblxuICAgICAgc3RyLWNoYXRfX21lc3NhZ2Utbm90aWZpY2F0aW9uLXJpZ2h0XG4gICAgICBzdHItY2hhdF9fbWVzc2FnZS1ub3RpZmljYXRpb24tc2Nyb2xsLWRvd25cbiAgICBcIlxuICAgIChrZXl1cC5lbnRlcik9XCJzY3JvbGxUb0JvdHRvbSgpXCJcbiAgICAoY2xpY2spPVwic2Nyb2xsVG9Cb3R0b20oKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInVucmVhZE1lc3NhZ2VDb3VudCA+IDBcIlxuICAgICAgY2xhc3M9XCJcbiAgICAgICAgc3RyLWNoYXRfX21lc3NhZ2Utbm90aWZpY2F0aW9uXG4gICAgICAgIHN0ci1jaGF0X19tZXNzYWdlLW5vdGlmaWNhdGlvbi1zY3JvbGwtZG93bi11bnJlYWQtY291bnRcbiAgICAgIFwiXG4gICAgPlxuICAgICAge3sgdW5yZWFkTWVzc2FnZUNvdW50IH19XG4gICAgPC9kaXY+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLWxpc3QvbWVzc2FnZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLWxpc3QvbWVzc2FnZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFNTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxjQUFjLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFRNUQsTUFBTSxPQUFPLG9CQUFvQjtJQTRDL0IsWUFDVSxjQUE4QixFQUM5QixpQkFBb0MsRUFDcEMsZ0JBQWtDO1FBRmxDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6QzVDOztXQUVHO1FBQ00sd0JBQW1CLEdBQXdCLFNBQVMsQ0FBQztRQUM5RDs7V0FFRztRQUNILDhEQUE4RDtRQUM5QiwrQkFBMEIsR0FFMUMsU0FBUyxDQUFDO1FBQ2pCLFNBQUksR0FBc0IsTUFBTSxDQUFDO1FBSTFDLDBCQUFxQixHQUFhLEVBQUUsQ0FBQztRQUNQLFVBQUssR0FDakMsd0VBQXdFLENBQUM7UUFDM0UsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQWF2Qiw2QkFBd0IsR0FBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLDhCQUF5QixHQUFHLEdB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OztpSEF6UlUsb0JBQW9CO3FHQUFwQixvQkFBb0IscW5CQzFCakMsaS9GQXNHQTsyRkQ1RWEsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLE1BQU0sRUFBRSxFQUFFO2lCQUNYO29LQUlVLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBSUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUswQiwwQkFBMEI7c0JBQXpELEtBQUs7dUJBQUMsdUJBQXVCO2dCQUdyQixJQUFJO3NCQUFaLEtBQUs7Z0JBS3dCLEtBQUs7c0JBQWxDLFdBQVc7dUJBQUMsT0FBTztnQkFRWixlQUFlO3NCQUR0QixTQUFTO3VCQUFDLGlCQUFpQjtnQkFHcEIsb0JBQW9CO3NCQUQzQixTQUFTO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhbm5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3RyZWFtTWVzc2FnZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IENoYXRDbGllbnRTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhdC1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRHcm91cFN0eWxlcywgR3JvdXBTdHlsZSB9IGZyb20gJy4vZ3JvdXAtc3R5bGVzJztcbmltcG9ydCB7IEltYWdlTG9hZFNlcnZpY2UgfSBmcm9tICcuL2ltYWdlLWxvYWQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0cmVhbS1tZXNzYWdlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUxpc3RDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIG1lc3NhZ2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbWVzc2FnZUlucHV0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1lbnRpb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9zZGsvYW5ndWxhci9jb21wb25lbnRzL21lc3NhZ2VfbGlzdC8jY2F1dGlvbi1hcmVyZWFjdGlvbnNlbmFibGVkLWRlcHJlY2F0ZWRcbiAgICovXG4gIEBJbnB1dCgpIGFyZVJlYWN0aW9uc0VuYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvY29tcG9uZW50cy9tZXNzYWdlX2xpc3QvI2NhdXRpb24tZW5hYmxlZG1lc3NhZ2VhY3Rpb25zLWRlcHJlY2F0ZWRcbiAgICovXG4gIC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXG4gIEBJbnB1dCgnZW5hYmxlZE1lc3NhZ2VBY3Rpb25zJykgZW5hYmxlZE1lc3NhZ2VBY3Rpb25zSW5wdXQ6XG4gICAgfCBzdHJpbmdbXVxuICAgIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtb2RlOiAnbWFpbicgfCAndGhyZWFkJyA9ICdtYWluJztcbiAgbWVzc2FnZXMkITogT2JzZXJ2YWJsZTxTdHJlYW1NZXNzYWdlW10+O1xuICBjYW5SZWFjdFRvTWVzc2FnZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgY2FuUmVjZWl2ZVJlYWRFdmVudHM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGVuYWJsZWRNZXNzYWdlQWN0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHByaXZhdGUgY2xhc3MgPVxuICAgICdzdHItY2hhdC1hbmd1bGFyX19tYWluLXBhbmVsLWlubmVyIHN0ci1jaGF0LWFuZ3VsYXJfX21lc3NhZ2UtbGlzdC1ob3N0JztcbiAgdW5yZWFkTWVzc2FnZUNvdW50ID0gMDtcbiAgaXNVc2VyU2Nyb2xsZWRVcDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgZ3JvdXBTdHlsZXM6IEdyb3VwU3R5bGVbXSA9IFtdO1xuICBsYXN0U2VudE1lc3NhZ2VJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwYXJlbnRNZXNzYWdlOiBTdHJlYW1NZXNzYWdlIHwgdW5kZWZpbmVkO1xuICBAVmlld0NoaWxkKCdzY3JvbGxDb250YWluZXInKVxuICBwcml2YXRlIHNjcm9sbENvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdwYXJlbnRNZXNzYWdlRWxlbWVudCcpXG4gIHByaXZhdGUgcGFyZW50TWVzc2FnZUVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgcHJpdmF0ZSBsYXRlc3RNZXNzYWdlRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBoYXNOZXdNZXNzYWdlczogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBjb250YWluZXJIZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvbGRlc3RNZXNzYWdlRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvbGRlck1hc3NhZ2VzTG9hZGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGlzTmV3TWVzc2FnZVNlbnRCeVVzZXI6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgYXV0aG9yaXplZE1lc3NhZ2VBY3Rpb25zOiBzdHJpbmdbXSA9IFsnZmxhZyddO1xuICBwcml2YXRlIHJlYWRvbmx5IGlzVXNlclNjcm9sbGVkVXBUaHJlc2hvbGQgPSAzMDA7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBwcmV2U2Nyb2xsVG9wOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFubmVsU2VydmljZTogQ2hhbm5lbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGF0Q2xpZW50U2VydmljZTogQ2hhdENsaWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWFnZUxvYWRTZXJ2aWNlOiBJbWFnZUxvYWRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jaGFubmVsU2VydmljZS5hY3RpdmVDaGFubmVsJC5zdWJzY3JpYmUoKGNoYW5uZWwpID0+IHtcbiAgICAgICAgdGhpcy5yZXNldFNjcm9sbFN0YXRlKCk7XG4gICAgICAgIGNvbnN0IGNhcGFiaWxpdGVzID0gY2hhbm5lbD8uZGF0YT8ub3duX2NhcGFiaWxpdGllcyBhcyBzdHJpbmdbXTtcbiAgICAgICAgaWYgKGNhcGFiaWxpdGVzKSB7XG4gICAgICAgICAgdGhpcy5jYW5SZWFjdFRvTWVzc2FnZSA9IGNhcGFiaWxpdGVzLmluZGV4T2YoJ3NlbmQtcmVhY3Rpb24nKSAhPT0gLTE7XG4gICAgICAgICAgdGhpcy5jYW5SZWNlaXZlUmVhZEV2ZW50cyA9IGNhcGFiaWxpdGVzLmluZGV4T2YoJ3JlYWQtZXZlbnRzJykgIT09IC0xO1xuICAgICAgICAgIHRoaXMuYXV0aG9yaXplZE1lc3NhZ2VBY3Rpb25zID0gW107XG4gICAgICAgICAgaWYgKHRoaXMuY2FuUmVhY3RUb01lc3NhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aG9yaXplZE1lc3NhZ2VBY3Rpb25zLnB1c2goJ3NlbmQtcmVhY3Rpb24nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuY2FuUmVjZWl2ZVJlYWRFdmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aG9yaXplZE1lc3NhZ2VBY3Rpb25zLnB1c2goJ3JlYWQtZXZlbnRzJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjYXBhYmlsaXRlcy5pbmRleE9mKCdmbGFnLW1lc3NhZ2UnKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0aG9yaXplZE1lc3NhZ2VBY3Rpb25zLnB1c2goJ2ZsYWcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNhcGFiaWxpdGVzLmluZGV4T2YoJ3VwZGF0ZS1vd24tbWVzc2FnZScpICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5hdXRob3JpemVkTWVzc2FnZUFjdGlvbnMucHVzaCgnZWRpdCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2FwYWJpbGl0ZXMuaW5kZXhPZigndXBkYXRlLWFueS1tZXNzYWdlJykgIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhvcml6ZWRNZXNzYWdlQWN0aW9ucy5wdXNoKCdlZGl0Jyk7XG4gICAgICAgICAgICB0aGlzLmF1dGhvcml6ZWRNZXNzYWdlQWN0aW9ucy5wdXNoKCdlZGl0LWFueScpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2FwYWJpbGl0ZXMuaW5kZXhPZignZGVsZXRlLW93bi1tZXNzYWdlJykgIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhvcml6ZWRNZXNzYWdlQWN0aW9ucy5wdXNoKCdkZWxldGUnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNhcGFiaWxpdGVzLmluZGV4T2YoJ2RlbGV0ZS1hbnktbWVzc2FnZScpICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5hdXRob3JpemVkTWVzc2FnZUFjdGlvbnMucHVzaCgnZGVsZXRlJyk7XG4gICAgICAgICAgICB0aGlzLmF1dGhvcml6ZWRNZXNzYWdlQWN0aW9ucy5wdXNoKCdkZWxldGUtYW55Jyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjYXBhYmlsaXRlcy5pbmRleE9mKCdzZW5kLXJlcGx5JykgIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhvcml6ZWRNZXNzYWdlQWN0aW9ucy5wdXNoKCdzZW5kLXJlcGx5Jyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjYXBhYmlsaXRlcy5pbmRleE9mKCdxdW90ZS1tZXNzYWdlJykgIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhvcml6ZWRNZXNzYWdlQWN0aW9ucy5wdXNoKCdxdW90ZS1tZXNzYWdlJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2V0RW5hYmxlZEFjdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5pbWFnZUxvYWRTZXJ2aWNlLmltYWdlTG9hZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVXNlclNjcm9sbGVkVXApIHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG4gICAgICAgICAgLy8gSGFja3kgYW5kIHVucmVsaWFibGUgd29ya2Fyb3VuZCB0byBzY3JvbGwgZG93biBhZnRlciBsb2FkZWQgaW1hZ2VzIG1vdmUgdGhlIHNjcm9sbGJhclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xuICAgICAgICAgIH0sIDMwMCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuY2hhbm5lbFNlcnZpY2UuYWN0aXZlUGFyZW50TWVzc2FnZSQuc3Vic2NyaWJlKChtZXNzYWdlKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBtZXNzYWdlICYmXG4gICAgICAgICAgdGhpcy5wYXJlbnRNZXNzYWdlICYmXG4gICAgICAgICAgbWVzc2FnZS5pZCAhPT0gdGhpcy5wYXJlbnRNZXNzYWdlLmlkICYmXG4gICAgICAgICAgdGhpcy5tb2RlID09PSAndGhyZWFkJ1xuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0U2Nyb2xsU3RhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhcmVudE1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRNZXNzYWdlcyQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5lbmFibGVkTWVzc2FnZUFjdGlvbnNJbnB1dCkge1xuICAgICAgdGhpcy5zZXRFbmFibGVkQWN0aW9ucygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5tb2RlKSB7XG4gICAgICB0aGlzLnNldE1lc3NhZ2VzJCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICBpZiAodGhpcy5oYXNOZXdNZXNzYWdlcykge1xuICAgICAgaWYgKCF0aGlzLmlzVXNlclNjcm9sbGVkVXAgfHwgdGhpcy5pc05ld01lc3NhZ2VTZW50QnlVc2VyKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20oKTtcbiAgICAgICAgLy8gSGFja3kgYW5kIHVucmVsaWFibGUgd29ya2Fyb3VuZCB0byBzY3JvbGwgZG93biBhZnRlciBsb2FkZWQgaW1hZ2VzIG1vdmUgdGhlIHNjcm9sbGJhclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgICB0aGlzLmhhc05ld01lc3NhZ2VzID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbnRhaW5lckhlaWdodCA9IHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAgIH0gZWxzZSBpZiAodGhpcy5vbGRlck1hc3NhZ2VzTG9hZGVkKSB7XG4gICAgICB0aGlzLnByZXNlcnZlU2Nyb2xsYmFyUG9zaXRpb24oKTtcbiAgICAgIHRoaXMuY29udGFpbmVySGVpZ2h0ID0gdGhpcy5zY3JvbGxDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgICB0aGlzLm9sZGVyTWFzc2FnZXNMb2FkZWQgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy5jb250YWluZXJIZWlnaHQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5jb250YWluZXJIZWlnaHQgPCB0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCAmJlxuICAgICAgIXRoaXMuaXNVc2VyU2Nyb2xsZWRVcFxuICAgICkge1xuICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xuICAgICAgdGhpcy5jb250YWluZXJIZWlnaHQgPSB0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHRyYWNrQnlNZXNzYWdlSWQoaW5kZXg6IG51bWJlciwgaXRlbTogU3RyZWFtTWVzc2FnZSkge1xuICAgIHJldHVybiBpdGVtLmlkO1xuICB9XG5cbiAgc2Nyb2xsVG9Cb3R0b20oKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPVxuICAgICAgdGhpcy5zY3JvbGxDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gIH1cblxuICBzY3JvbGxlZCgpIHtcbiAgICB0aGlzLmlzVXNlclNjcm9sbGVkVXAgPVxuICAgICAgdGhpcy5zY3JvbGxDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgLVxuICAgICAgICAodGhpcy5zY3JvbGxDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgK1xuICAgICAgICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0KSA+XG4gICAgICB0aGlzLmlzVXNlclNjcm9sbGVkVXBUaHJlc2hvbGQ7XG4gICAgaWYgKCF0aGlzLmlzVXNlclNjcm9sbGVkVXApIHtcbiAgICAgIHRoaXMudW5yZWFkTWVzc2FnZUNvdW50ID0gMDtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy5zY3JvbGxDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPD1cbiAgICAgICAgKHRoaXMucGFyZW50TWVzc2FnZUVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDApICYmXG4gICAgICAodGhpcy5wcmV2U2Nyb2xsVG9wID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgdGhpcy5wcmV2U2Nyb2xsVG9wID5cbiAgICAgICAgICAodGhpcy5wYXJlbnRNZXNzYWdlRWxlbWVudD8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMCkpXG4gICAgKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lckhlaWdodCA9IHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAgICAgdGhpcy5tb2RlID09PSAnbWFpbidcbiAgICAgICAgPyB2b2lkIHRoaXMuY2hhbm5lbFNlcnZpY2UubG9hZE1vcmVNZXNzYWdlcygpXG4gICAgICAgIDogdm9pZCB0aGlzLmNoYW5uZWxTZXJ2aWNlLmxvYWRNb3JlVGhyZWFkUmVwbGllcygpO1xuICAgIH1cbiAgICB0aGlzLnByZXZTY3JvbGxUb3AgPSB0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcbiAgfVxuXG4gIHByaXZhdGUgcHJlc2VydmVTY3JvbGxiYXJQb3NpdGlvbigpIHtcbiAgICB0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9XG4gICAgICAodGhpcy5wcmV2U2Nyb2xsVG9wIHx8IDApICtcbiAgICAgICh0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCAtIHRoaXMuY29udGFpbmVySGVpZ2h0ISk7XG4gIH1cblxuICBwcml2YXRlIHNldEVuYWJsZWRBY3Rpb25zKCkge1xuICAgIHRoaXMuZW5hYmxlZE1lc3NhZ2VBY3Rpb25zID0gW107XG4gICAgaWYgKCF0aGlzLmVuYWJsZWRNZXNzYWdlQWN0aW9uc0lucHV0KSB7XG4gICAgICB0aGlzLmVuYWJsZWRNZXNzYWdlQWN0aW9ucyA9IHRoaXMuYXV0aG9yaXplZE1lc3NhZ2VBY3Rpb25zO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmVuYWJsZWRNZXNzYWdlQWN0aW9uc0lucHV0ID0gW1xuICAgICAgLi4udGhpcy5lbmFibGVkTWVzc2FnZUFjdGlvbnNJbnB1dCxcbiAgICAgICdzZW5kLXJlYWN0aW9uJyxcbiAgICAgICdyZWFkLWV2ZW50cycsXG4gICAgICAnc2VuZC1yZXBseScsXG4gICAgICAncXVvdGUtbWVzc2FnZScsXG4gICAgXTtcbiAgICB0aGlzLmVuYWJsZWRNZXNzYWdlQWN0aW9uc0lucHV0LmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgY29uc3QgaXNBdXRob3JpemVkID0gdGhpcy5hdXRob3JpemVkTWVzc2FnZUFjdGlvbnMuaW5kZXhPZihhY3Rpb24pICE9PSAtMTtcbiAgICAgIGlmIChpc0F1dGhvcml6ZWQpIHtcbiAgICAgICAgdGhpcy5lbmFibGVkTWVzc2FnZUFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRNZXNzYWdlcyQoKSB7XG4gICAgdGhpcy5tZXNzYWdlcyQgPSAoXG4gICAgICB0aGlzLm1vZGUgPT09ICdtYWluJ1xuICAgICAgICA/IHRoaXMuY2hhbm5lbFNlcnZpY2UuYWN0aXZlQ2hhbm5lbE1lc3NhZ2VzJFxuICAgICAgICA6IHRoaXMuY2hhbm5lbFNlcnZpY2UuYWN0aXZlVGhyZWFkTWVzc2FnZXMkXG4gICAgKS5waXBlKFxuICAgICAgdGFwKChtZXNzYWdlcykgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMYXRlc3RNZXNzYWdlRGF0ZSA9XG4gICAgICAgICAgbWVzc2FnZXNbbWVzc2FnZXMubGVuZ3RoIC0gMV0uY3JlYXRlZF9hdDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICF0aGlzLmxhdGVzdE1lc3NhZ2VEYXRlIHx8XG4gICAgICAgICAgdGhpcy5sYXRlc3RNZXNzYWdlRGF0ZT8uZ2V0VGltZSgpIDwgY3VycmVudExhdGVzdE1lc3NhZ2VEYXRlLmdldFRpbWUoKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmxhdGVzdE1lc3NhZ2VEYXRlID0gY3VycmVudExhdGVzdE1lc3NhZ2VEYXRlO1xuICAgICAgICAgIHRoaXMuaGFzTmV3TWVzc2FnZXMgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaXNOZXdNZXNzYWdlU2VudEJ5VXNlciA9XG4gICAgICAgICAgICBtZXNzYWdlc1ttZXNzYWdlcy5sZW5ndGggLSAxXS51c2VyPy5pZCA9PT1cbiAgICAgICAgICAgIHRoaXMuY2hhdENsaWVudFNlcnZpY2UuY2hhdENsaWVudD8udXNlcj8uaWQ7XG4gICAgICAgICAgaWYgKHRoaXMuaXNVc2VyU2Nyb2xsZWRVcCkge1xuICAgICAgICAgICAgdGhpcy51bnJlYWRNZXNzYWdlQ291bnQrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudE9sZGVzdE1lc3NhZ2VEYXRlID0gbWVzc2FnZXNbMF0uY3JlYXRlZF9hdDtcbiAgICAgICAgaWYgKCF0aGlzLm9sZGVzdE1lc3NhZ2VEYXRlKSB7XG4gICAgICAgICAgdGhpcy5vbGRlc3RNZXNzYWdlRGF0ZSA9IGN1cnJlbnRPbGRlc3RNZXNzYWdlRGF0ZTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICB0aGlzLm9sZGVzdE1lc3NhZ2VEYXRlPy5nZXRUaW1lKCkgPiBjdXJyZW50T2xkZXN0TWVzc2FnZURhdGUuZ2V0VGltZSgpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMub2xkZXN0TWVzc2FnZURhdGUgPSBjdXJyZW50T2xkZXN0TWVzc2FnZURhdGU7XG4gICAgICAgICAgdGhpcy5vbGRlck1hc3NhZ2VzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0YXAoKG1lc3NhZ2VzKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JvdXBTdHlsZXMgPSBtZXNzYWdlcy5tYXAoKG0sIGkpID0+XG4gICAgICAgICAgZ2V0R3JvdXBTdHlsZXMobSwgbWVzc2FnZXNbaSAtIDFdLCBtZXNzYWdlc1tpICsgMV0pXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIHRhcChcbiAgICAgICAgKG1lc3NhZ2VzKSA9PlxuICAgICAgICAgICh0aGlzLmxhc3RTZW50TWVzc2FnZUlkID0gWy4uLm1lc3NhZ2VzXVxuICAgICAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAgICAgLmZpbmQoXG4gICAgICAgICAgICAgIChtKSA9PlxuICAgICAgICAgICAgICAgIG0udXNlcj8uaWQgPT09IHRoaXMuY2hhdENsaWVudFNlcnZpY2UuY2hhdENsaWVudD8udXNlcj8uaWQgJiZcbiAgICAgICAgICAgICAgICBtLnN0YXR1cyAhPT0gJ3NlbmRpbmcnXG4gICAgICAgICAgICApPy5pZClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFNjcm9sbFN0YXRlKCkge1xuICAgIHRoaXMubGF0ZXN0TWVzc2FnZURhdGUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5oYXNOZXdNZXNzYWdlcyA9IHRydWU7XG4gICAgdGhpcy5pc1VzZXJTY3JvbGxlZFVwID0gZmFsc2U7XG4gICAgdGhpcy5jb250YWluZXJIZWlnaHQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5vbGRlck1hc3NhZ2VzTG9hZGVkID0gZmFsc2U7XG4gICAgdGhpcy5vbGRlc3RNZXNzYWdlRGF0ZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnVucmVhZE1lc3NhZ2VDb3VudCA9IDA7XG4gICAgdGhpcy5wcmV2U2Nyb2xsVG9wID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuaXNOZXdNZXNzYWdlU2VudEJ5VXNlciA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGRpdlxuICAjc2Nyb2xsQ29udGFpbmVyXG4gIGRhdGEtdGVzdGlkPVwic2Nyb2xsLWNvbnRhaW5lclwiXG4gIGNsYXNzPVwic3RyLWNoYXRfX2xpc3RcIlxuICAoc2Nyb2xsKT1cInNjcm9sbGVkKClcIlxuPlxuICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX3JldmVyc2UtaW5maW5pdGUtc2Nyb2xsXCI+XG4gICAgPHVsIGNsYXNzPVwic3RyLWNoYXRfX3VsXCI+XG4gICAgICA8bGlcbiAgICAgICAgI3BhcmVudE1lc3NhZ2VFbGVtZW50XG4gICAgICAgICpuZ0lmPVwibW9kZSA9PT0gJ3RocmVhZCdcIlxuICAgICAgICBkYXRhLXRlc3RpZD1cInBhcmVudC1tZXNzYWdlXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBtZXNzYWdlVGVtcGxhdGVDb250YWluZXI7XG4gICAgICAgICAgICBjb250ZXh0OiB7IG1lc3NhZ2U6IHBhcmVudE1lc3NhZ2UgfVxuICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X190aHJlYWQtc3RhcnRcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgc3RyZWFtQ2hhdC5TdGFydCBvZiBhIG5ldyB0aHJlYWRcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgICAgPGxpXG4gICAgICAgIGRhdGEtdGVzdGNsYXNzPVwibWVzc2FnZVwiXG4gICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgIGxldCBtZXNzYWdlIG9mIG1lc3NhZ2VzJCB8IGFzeW5jO1xuICAgICAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICAgICAgdHJhY2tCeTogdHJhY2tCeU1lc3NhZ2VJZFxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cInN0ci1jaGF0X19saSBzdHItY2hhdF9fbGktLXt7IGdyb3VwU3R5bGVzW2ldIH19XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBtZXNzYWdlVGVtcGxhdGVDb250YWluZXI7XG4gICAgICAgICAgICBjb250ZXh0OiB7IG1lc3NhZ2U6IG1lc3NhZ2UgfVxuICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbGlzdC1ub3RpZmljYXRpb25zXCI+XG4gIDxidXR0b25cbiAgICBkYXRhLXRlc3RpZD1cInNjcm9sbC10by1ib3R0b21cIlxuICAgICpuZ0lmPVwiaXNVc2VyU2Nyb2xsZWRVcFwiXG4gICAgY2xhc3M9XCJcbiAgICAgIHN0ci1jaGF0X19tZXNzYWdlLW5vdGlmaWNhdGlvblxuICAgICAgc3RyLWNoYXRfX21lc3NhZ2Utbm90aWZpY2F0aW9uLXJpZ2h0XG4gICAgICBzdHItY2hhdF9fbWVzc2FnZS1ub3RpZmljYXRpb24tc2Nyb2xsLWRvd25cbiAgICBcIlxuICAgIChrZXl1cC5lbnRlcik9XCJzY3JvbGxUb0JvdHRvbSgpXCJcbiAgICAoY2xpY2spPVwic2Nyb2xsVG9Cb3R0b20oKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInVucmVhZE1lc3NhZ2VDb3VudCA+IDBcIlxuICAgICAgY2xhc3M9XCJcbiAgICAgICAgc3RyLWNoYXRfX21lc3NhZ2Utbm90aWZpY2F0aW9uXG4gICAgICAgIHN0ci1jaGF0X19tZXNzYWdlLW5vdGlmaWNhdGlvbi1zY3JvbGwtZG93bi11bnJlYWQtY291bnRcbiAgICAgIFwiXG4gICAgPlxuICAgICAge3sgdW5yZWFkTWVzc2FnZUNvdW50IH19XG4gICAgPC9kaXY+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbWVzc2FnZVRlbXBsYXRlQ29udGFpbmVyIGxldC1tZXNzYWdlPVwibWVzc2FnZVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVzc2FnZVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRNZXNzYWdlVGVtcGxhdGVcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBtZXNzYWdlVGVtcGxhdGU7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgIGFyZVJlYWN0aW9uc0VuYWJsZWQ6IGFyZVJlYWN0aW9uc0VuYWJsZWQsXG4gICAgICAgICAgY2FuUmVhY3RUb01lc3NhZ2U6IGNhblJlYWN0VG9NZXNzYWdlLFxuICAgICAgICAgIGxhc3RTZW50TWVzc2FnZUlkOiAhIShcbiAgICAgICAgICAgIGxhc3RTZW50TWVzc2FnZUlkICYmIG1lc3NhZ2U/LmlkID09PSBsYXN0U2VudE1lc3NhZ2VJZFxuICAgICAgICAgICksXG4gICAgICAgICAgY2FuUmVjZWl2ZVJlYWRFdmVudHM6IGNhblJlY2VpdmVSZWFkRXZlbnRzLFxuICAgICAgICAgIG1lc3NhZ2VJbnB1dFRlbXBsYXRlOiBtZXNzYWdlSW5wdXRUZW1wbGF0ZSxcbiAgICAgICAgICBtZW50aW9uVGVtcGxhdGU6IG1lbnRpb25UZW1wbGF0ZSxcbiAgICAgICAgICBtb2RlOiBtb2RlXG4gICAgICAgIH1cbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TWVzc2FnZVRlbXBsYXRlPlxuICAgIDxzdHJlYW0tbWVzc2FnZVxuICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXG4gICAgICBbYXJlUmVhY3Rpb25zRW5hYmxlZF09XCJhcmVSZWFjdGlvbnNFbmFibGVkXCJcbiAgICAgIFtjYW5SZWFjdFRvTWVzc2FnZV09XCJjYW5SZWFjdFRvTWVzc2FnZVwiXG4gICAgICBbaXNMYXN0U2VudE1lc3NhZ2VdPVwiXG4gICAgICAgICEhKGxhc3RTZW50TWVzc2FnZUlkICYmIG1lc3NhZ2U/LmlkID09PSBsYXN0U2VudE1lc3NhZ2VJZClcbiAgICAgIFwiXG4gICAgICBbZW5hYmxlZE1lc3NhZ2VBY3Rpb25zXT1cImVuYWJsZWRNZXNzYWdlQWN0aW9uc1wiXG4gICAgICBbY2FuUmVjZWl2ZVJlYWRFdmVudHNdPVwiY2FuUmVjZWl2ZVJlYWRFdmVudHNcIlxuICAgICAgW21lc3NhZ2VJbnB1dFRlbXBsYXRlXT1cIm1lc3NhZ2VJbnB1dFRlbXBsYXRlXCJcbiAgICAgIFttZW50aW9uVGVtcGxhdGVdPVwibWVudGlvblRlbXBsYXRlXCJcbiAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgID48L3N0cmVhbS1tZXNzYWdlPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
-
export const createMessagePreview = (user, text, attachments, mentionedUsers) => {
|
|
2
|
+
export const createMessagePreview = (user, text, attachments = [], mentionedUsers = [], parentId = undefined, quotedMessageId = undefined) => {
|
|
3
3
|
const clientSideId = `${user.id}-${uuidv4()}`;
|
|
4
4
|
return {
|
|
5
5
|
__html: text,
|
|
@@ -13,6 +13,8 @@ export const createMessagePreview = (user, text, attachments, mentionedUsers) =>
|
|
|
13
13
|
user,
|
|
14
14
|
attachments,
|
|
15
15
|
mentioned_users: mentionedUsers,
|
|
16
|
+
parent_id: parentId,
|
|
17
|
+
quoted_message_id: quotedMessageId,
|
|
16
18
|
};
|
|
17
19
|
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1wcmV2aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL21lc3NhZ2UtcHJldmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUNsQyxJQUFrQixFQUNsQixJQUFZLEVBQ1osY0FBNEIsRUFBRSxFQUM5QixpQkFBaUMsRUFBRSxFQUNuQyxXQUErQixTQUFTLEVBQ3hDLGtCQUFzQyxTQUFTLEVBQy9DLEVBQUU7SUFDRixNQUFNLFlBQVksR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUU5QyxPQUFPO1FBQ0wsTUFBTSxFQUFFLElBQUk7UUFDWixVQUFVLEVBQUUsSUFBSSxJQUFJLEVBQUU7UUFDdEIsSUFBSSxFQUFFLElBQUk7UUFDVixFQUFFLEVBQUUsWUFBWTtRQUNoQixTQUFTLEVBQUUsRUFBRTtRQUNiLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLElBQUk7UUFDSixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUk7UUFDSixXQUFXO1FBQ1gsZUFBZSxFQUFFLGNBQWM7UUFDL0IsU0FBUyxFQUFFLFFBQVE7UUFDbkIsaUJBQWlCLEVBQUUsZUFBZTtLQUNMLENBQUM7QUFDbEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0YWNobWVudCwgTWVzc2FnZVJlc3BvbnNlLCBVc2VyUmVzcG9uc2UgfSBmcm9tICdzdHJlYW0tY2hhdCc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1lc3NhZ2VQcmV2aWV3ID0gKFxuICB1c2VyOiBVc2VyUmVzcG9uc2UsXG4gIHRleHQ6IHN0cmluZyxcbiAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRbXSA9IFtdLFxuICBtZW50aW9uZWRVc2VyczogVXNlclJlc3BvbnNlW10gPSBbXSxcbiAgcGFyZW50SWQ6IHVuZGVmaW5lZCB8IHN0cmluZyA9IHVuZGVmaW5lZCxcbiAgcXVvdGVkTWVzc2FnZUlkOiB1bmRlZmluZWQgfCBzdHJpbmcgPSB1bmRlZmluZWRcbikgPT4ge1xuICBjb25zdCBjbGllbnRTaWRlSWQgPSBgJHt1c2VyLmlkfS0ke3V1aWR2NCgpfWA7XG5cbiAgcmV0dXJuIHtcbiAgICBfX2h0bWw6IHRleHQsXG4gICAgY3JlYXRlZF9hdDogbmV3IERhdGUoKSxcbiAgICBodG1sOiB0ZXh0LFxuICAgIGlkOiBjbGllbnRTaWRlSWQsXG4gICAgcmVhY3Rpb25zOiBbXSxcbiAgICBzdGF0dXM6ICdzZW5kaW5nJyxcbiAgICB0ZXh0LFxuICAgIHR5cGU6ICdyZWd1bGFyJyxcbiAgICB1c2VyLFxuICAgIGF0dGFjaG1lbnRzLFxuICAgIG1lbnRpb25lZF91c2VyczogbWVudGlvbmVkVXNlcnMsXG4gICAgcGFyZW50X2lkOiBwYXJlbnRJZCxcbiAgICBxdW90ZWRfbWVzc2FnZV9pZDogcXVvdGVkTWVzc2FnZUlkLFxuICB9IGFzIHVua25vd24gYXMgTWVzc2FnZVJlc3BvbnNlO1xufTtcbiJdfQ==
|
|
@@ -19,6 +19,7 @@ import { AttachmentPreviewListComponent } from './attachment-preview-list/attach
|
|
|
19
19
|
import { ModalComponent } from './modal/modal.component';
|
|
20
20
|
import { TextareaDirective } from './message-input/textarea.directive';
|
|
21
21
|
import { StreamAvatarModule } from './stream-avatar.module';
|
|
22
|
+
import { ThreadComponent } from './thread/thread.component';
|
|
22
23
|
import * as i0 from "@angular/core";
|
|
23
24
|
export class StreamChatModule {
|
|
24
25
|
}
|
|
@@ -39,7 +40,8 @@ StreamChatModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
39
40
|
NotificationListComponent,
|
|
40
41
|
AttachmentPreviewListComponent,
|
|
41
42
|
ModalComponent,
|
|
42
|
-
TextareaDirective
|
|
43
|
+
TextareaDirective,
|
|
44
|
+
ThreadComponent], imports: [CommonModule, TranslateModule, StreamAvatarModule], exports: [ChannelComponent,
|
|
43
45
|
ChannelHeaderComponent,
|
|
44
46
|
ChannelListComponent,
|
|
45
47
|
ChannelPreviewComponent,
|
|
@@ -55,7 +57,8 @@ StreamChatModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
55
57
|
NotificationListComponent,
|
|
56
58
|
AttachmentPreviewListComponent,
|
|
57
59
|
ModalComponent,
|
|
58
|
-
StreamAvatarModule
|
|
60
|
+
StreamAvatarModule,
|
|
61
|
+
ThreadComponent] });
|
|
59
62
|
StreamChatModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: StreamChatModule, imports: [[CommonModule, TranslateModule, StreamAvatarModule], StreamAvatarModule] });
|
|
60
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: StreamChatModule, decorators: [{
|
|
61
64
|
type: NgModule,
|
|
@@ -78,6 +81,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
78
81
|
AttachmentPreviewListComponent,
|
|
79
82
|
ModalComponent,
|
|
80
83
|
TextareaDirective,
|
|
84
|
+
ThreadComponent,
|
|
81
85
|
],
|
|
82
86
|
imports: [CommonModule, TranslateModule, StreamAvatarModule],
|
|
83
87
|
exports: [
|
|
@@ -98,7 +102,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
98
102
|
AttachmentPreviewListComponent,
|
|
99
103
|
ModalComponent,
|
|
100
104
|
StreamAvatarModule,
|
|
105
|
+
ThreadComponent,
|
|
101
106
|
],
|
|
102
107
|
}]
|
|
103
108
|
}] });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLWNoYXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL3N0cmVhbS1jaGF0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBNkM1RCxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBekN6QixnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBQ3RCLG9CQUFvQjtRQUNwQix1QkFBdUI7UUFDdkIsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixvQkFBb0I7UUFDcEIseUJBQXlCO1FBQ3pCLGFBQWE7UUFDYiwwQkFBMEI7UUFDMUIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixxQkFBcUI7UUFDckIseUJBQXlCO1FBQ3pCLDhCQUE4QjtRQUM5QixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLGVBQWUsYUFFUCxZQUFZLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixhQUV6RCxnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBQ3RCLG9CQUFvQjtRQUNwQix1QkFBdUI7UUFDdkIsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixvQkFBb0I7UUFDcEIseUJBQXlCO1FBQ3pCLGFBQWE7UUFDYiwwQkFBMEI7UUFDMUIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixxQkFBcUI7UUFDckIseUJBQXlCO1FBQ3pCLDhCQUE4QjtRQUM5QixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLGVBQWU7OEdBR04sZ0JBQWdCLFlBdEJsQixDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsa0JBQWtCLENBQUMsRUFrQjFELGtCQUFrQjsyRkFJVCxnQkFBZ0I7a0JBM0M1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLHlCQUF5Qjt3QkFDekIsYUFBYTt3QkFDYiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsOEJBQThCO3dCQUM5QixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQztvQkFDNUQsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIseUJBQXlCO3dCQUN6QixhQUFhO3dCQUNiLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLHFCQUFxQjt3QkFDckIseUJBQXlCO3dCQUN6Qiw4QkFBOEI7d0JBQzlCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFubmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jaGFubmVsL2NoYW5uZWwuY29tcG9uZW50JztcbmltcG9ydCB7IENoYW5uZWxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NoYW5uZWwtaGVhZGVyL2NoYW5uZWwtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGFubmVsTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY2hhbm5lbC1saXN0L2NoYW5uZWwtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhbm5lbFByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NoYW5uZWwtcHJldmlldy9jaGFubmVsLXByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UvbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlLWlucHV0L21lc3NhZ2UtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2VMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlLWxpc3QvbWVzc2FnZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTG9hZGluZ0luZGljYXRvckNvbXBvbmVudCB9IGZyb20gJy4vbG9hZGluZy1pbmRpY2F0b3IvbG9hZGluZy1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZUFjdGlvbnNCb3hDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UtYWN0aW9ucy1ib3gvbWVzc2FnZS1hY3Rpb25zLWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0YWNobWVudExpc3RDb21wb25lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnQtbGlzdC9hdHRhY2htZW50LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2VSZWFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UtcmVhY3Rpb25zL21lc3NhZ2UtcmVhY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi1saXN0L25vdGlmaWNhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEF0dGFjaG1lbnRQcmV2aWV3TGlzdENvbXBvbmVudCB9IGZyb20gJy4vYXR0YWNobWVudC1wcmV2aWV3LWxpc3QvYXR0YWNobWVudC1wcmV2aWV3LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFEaXJlY3RpdmUgfSBmcm9tICcuL21lc3NhZ2UtaW5wdXQvdGV4dGFyZWEuZGlyZWN0aXZlJztcbmltcG9ydCB7IFN0cmVhbUF2YXRhck1vZHVsZSB9IGZyb20gJy4vc3RyZWFtLWF2YXRhci5tb2R1bGUnO1xuaW1wb3J0IHsgVGhyZWFkQ29tcG9uZW50IH0gZnJvbSAnLi90aHJlYWQvdGhyZWFkLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENoYW5uZWxDb21wb25lbnQsXG4gICAgQ2hhbm5lbEhlYWRlckNvbXBvbmVudCxcbiAgICBDaGFubmVsTGlzdENvbXBvbmVudCxcbiAgICBDaGFubmVsUHJldmlld0NvbXBvbmVudCxcbiAgICBNZXNzYWdlQ29tcG9uZW50LFxuICAgIE1lc3NhZ2VJbnB1dENvbXBvbmVudCxcbiAgICBNZXNzYWdlTGlzdENvbXBvbmVudCxcbiAgICBMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgTWVzc2FnZUFjdGlvbnNCb3hDb21wb25lbnQsXG4gICAgQXR0YWNobWVudExpc3RDb21wb25lbnQsXG4gICAgTWVzc2FnZVJlYWN0aW9uc0NvbXBvbmVudCxcbiAgICBOb3RpZmljYXRpb25Db21wb25lbnQsXG4gICAgTm90aWZpY2F0aW9uTGlzdENvbXBvbmVudCxcbiAgICBBdHRhY2htZW50UHJldmlld0xpc3RDb21wb25lbnQsXG4gICAgTW9kYWxDb21wb25lbnQsXG4gICAgVGV4dGFyZWFEaXJlY3RpdmUsXG4gICAgVGhyZWFkQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIFN0cmVhbUF2YXRhck1vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBDaGFubmVsQ29tcG9uZW50LFxuICAgIENoYW5uZWxIZWFkZXJDb21wb25lbnQsXG4gICAgQ2hhbm5lbExpc3RDb21wb25lbnQsXG4gICAgQ2hhbm5lbFByZXZpZXdDb21wb25lbnQsXG4gICAgTWVzc2FnZUNvbXBvbmVudCxcbiAgICBNZXNzYWdlSW5wdXRDb21wb25lbnQsXG4gICAgTWVzc2FnZUxpc3RDb21wb25lbnQsXG4gICAgTG9hZGluZ0luZGljYXRvckNvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE1lc3NhZ2VBY3Rpb25zQm94Q29tcG9uZW50LFxuICAgIEF0dGFjaG1lbnRMaXN0Q29tcG9uZW50LFxuICAgIE1lc3NhZ2VSZWFjdGlvbnNDb21wb25lbnQsXG4gICAgTm90aWZpY2F0aW9uQ29tcG9uZW50LFxuICAgIE5vdGlmaWNhdGlvbkxpc3RDb21wb25lbnQsXG4gICAgQXR0YWNobWVudFByZXZpZXdMaXN0Q29tcG9uZW50LFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIFN0cmVhbUF2YXRhck1vZHVsZSxcbiAgICBUaHJlYWRDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN0cmVhbUNoYXRNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Component, HostBinding } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../channel.service";
|
|
4
|
+
import * as i2 from "../icon/icon.component";
|
|
5
|
+
import * as i3 from "@ngx-translate/core";
|
|
6
|
+
export class ThreadComponent {
|
|
7
|
+
constructor(channelService) {
|
|
8
|
+
this.channelService = channelService;
|
|
9
|
+
this.class = 'str-chat__thread';
|
|
10
|
+
this.subscriptions = [];
|
|
11
|
+
this.subscriptions.push(this.channelService.activeParentMessage$.subscribe((parentMessage) => (this.parentMessage = parentMessage)));
|
|
12
|
+
}
|
|
13
|
+
ngOnDestroy() {
|
|
14
|
+
this.subscriptions.forEach((s) => s.unsubscribe());
|
|
15
|
+
}
|
|
16
|
+
get replyCountParam() {
|
|
17
|
+
var _a;
|
|
18
|
+
return { replyCount: (_a = this.parentMessage) === null || _a === void 0 ? void 0 : _a.reply_count };
|
|
19
|
+
}
|
|
20
|
+
closeThread() {
|
|
21
|
+
void this.channelService.setAsActiveParentMessage(undefined);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
ThreadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ThreadComponent, deps: [{ token: i1.ChannelService }], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
ThreadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: ThreadComponent, selector: "stream-thread", host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div class=\"str-chat__thread-header\">\n <div class=\"str-chat__thread-header-details\">\n <strong translate>streamChat.Thread</strong>\n <small data-testid=\"reply-count\">\n {{parentMessage?.reply_count === 1 ? ('streamChat.1 reply' | translate) : ('streamChat.{{ replyCount }}\n replies' | translate:replyCountParam)}}\n </small>\n </div>\n <button\n class=\"str-chat__square-button\"\n data-testid=\"close-button\"\n (click)=\"closeThread()\"\n >\n <stream-icon icon=\"close-no-outline\"></stream-icon>\n </button>\n</div>\n<ng-content select='[name=\"thread-message-list\"]'></ng-content>\n<div class=\"str-chat__small-message-input__wrapper\">\n <ng-content select='[name=\"thread-message-input\"]'></ng-content>\n</div>\n", components: [{ type: i2.IconComponent, selector: "stream-icon", inputs: ["icon", "size"] }], directives: [{ type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], pipes: { "translate": i3.TranslatePipe } });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: ThreadComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: 'stream-thread',
|
|
30
|
+
templateUrl: './thread.component.html',
|
|
31
|
+
styles: [],
|
|
32
|
+
}]
|
|
33
|
+
}], ctorParameters: function () { return [{ type: i1.ChannelService }]; }, propDecorators: { class: [{
|
|
34
|
+
type: HostBinding,
|
|
35
|
+
args: ['class']
|
|
36
|
+
}] } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi90aHJlYWQvdGhyZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi90aHJlYWQvdGhyZWFkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7OztBQVVsRSxNQUFNLE9BQU8sZUFBZTtJQUsxQixZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFKcEIsVUFBSyxHQUFHLGtCQUFrQixDQUFDO1FBRWpELGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUd6QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQ2hELENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDLENBQ3hELENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLGVBQWU7O1FBQ2pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxXQUFXLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsV0FBVztRQUNULEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs0R0F2QlUsZUFBZTtnR0FBZixlQUFlLHNHQ1Y1Qixnd0JBb0JBOzJGRFZhLGVBQWU7a0JBTDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLE1BQU0sRUFBRSxFQUFFO2lCQUNYO3FHQUUrQixLQUFLO3NCQUFsQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi9jaGFubmVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RyZWFtTWVzc2FnZSB9IGZyb20gJy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3RyZWFtLXRocmVhZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90aHJlYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUaHJlYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgcHJpdmF0ZSBjbGFzcyA9ICdzdHItY2hhdF9fdGhyZWFkJztcbiAgcGFyZW50TWVzc2FnZTogU3RyZWFtTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmNoYW5uZWxTZXJ2aWNlLmFjdGl2ZVBhcmVudE1lc3NhZ2UkLnN1YnNjcmliZShcbiAgICAgICAgKHBhcmVudE1lc3NhZ2UpID0+ICh0aGlzLnBhcmVudE1lc3NhZ2UgPSBwYXJlbnRNZXNzYWdlKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGdldCByZXBseUNvdW50UGFyYW0oKSB7XG4gICAgcmV0dXJuIHsgcmVwbHlDb3VudDogdGhpcy5wYXJlbnRNZXNzYWdlPy5yZXBseV9jb3VudCB9O1xuICB9XG5cbiAgY2xvc2VUaHJlYWQoKSB7XG4gICAgdm9pZCB0aGlzLmNoYW5uZWxTZXJ2aWNlLnNldEFzQWN0aXZlUGFyZW50TWVzc2FnZSh1bmRlZmluZWQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX3RocmVhZC1oZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X190aHJlYWQtaGVhZGVyLWRldGFpbHNcIj5cbiAgICA8c3Ryb25nIHRyYW5zbGF0ZT5zdHJlYW1DaGF0LlRocmVhZDwvc3Ryb25nPlxuICAgIDxzbWFsbCBkYXRhLXRlc3RpZD1cInJlcGx5LWNvdW50XCI+XG4gICAgICB7e3BhcmVudE1lc3NhZ2U/LnJlcGx5X2NvdW50ID09PSAxID8gKCdzdHJlYW1DaGF0LjEgcmVwbHknIHwgdHJhbnNsYXRlKSA6ICgnc3RyZWFtQ2hhdC57eyByZXBseUNvdW50IH19XG4gICAgICByZXBsaWVzJyB8IHRyYW5zbGF0ZTpyZXBseUNvdW50UGFyYW0pfX1cbiAgICA8L3NtYWxsPlxuICA8L2Rpdj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwic3RyLWNoYXRfX3NxdWFyZS1idXR0b25cIlxuICAgIGRhdGEtdGVzdGlkPVwiY2xvc2UtYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiY2xvc2VUaHJlYWQoKVwiXG4gID5cbiAgICA8c3RyZWFtLWljb24gaWNvbj1cImNsb3NlLW5vLW91dGxpbmVcIj48L3N0cmVhbS1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PSdbbmFtZT1cInRocmVhZC1tZXNzYWdlLWxpc3RcIl0nPjwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJzdHItY2hhdF9fc21hbGwtbWVzc2FnZS1pbnB1dF9fd3JhcHBlclwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9J1tuYW1lPVwidGhyZWFkLW1lc3NhZ2UtaW5wdXRcIl0nPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
|
package/esm2015/lib/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQ2hhbm5lbE1lbWJlclJlc3BvbnNlLFxuICBDb21tYW5kUmVzcG9uc2UsXG4gIEV2ZW50LFxuICBGb3JtYXRNZXNzYWdlUmVzcG9uc2UsXG4gIExpdGVyYWxTdHJpbmdGb3JVbmlvbixcbiAgTXV0ZSxcbiAgVXNlclJlc3BvbnNlLFxufSBmcm9tICdzdHJlYW0tY2hhdCc7XG5cbmV4cG9ydCB0eXBlIFVua25vd25UeXBlID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVRyaWdnZXIgPSB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICBjb21wb25lbnRQcm9wczogVW5rbm93blR5cGU7XG4gICAgZGF0YTogVW5rbm93blR5cGU7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0QXR0YWNobWVudFR5cGUgPSBVbmtub3duVHlwZSAmIHtcbiAgYXNzZXRfdXJsPzogc3RyaW5nO1xuICBmaWxlX3NpemU/OiBudW1iZXI7XG4gIGlkPzogc3RyaW5nO1xuICBpbWFnZXM/OiBBcnJheTx7XG4gICAgaW1hZ2VfdXJsPzogc3RyaW5nO1xuICAgIHRodW1iX3VybD86IHN0cmluZztcbiAgfT47XG4gIG1pbWVfdHlwZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRDaGFubmVsVHlwZSA9IFVua25vd25UeXBlICYge1xuICBpbWFnZT86IHN0cmluZztcbiAgbWVtYmVyX2NvdW50PzogbnVtYmVyO1xuICBzdWJ0aXRsZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRDb21tYW5kVHlwZSA9IExpdGVyYWxTdHJpbmdGb3JVbmlvbjtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdEV2ZW50VHlwZSA9IFVua25vd25UeXBlO1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0TWVzc2FnZVR5cGUgPSBVbmtub3duVHlwZSAmIHtcbiAgY3VzdG9tVHlwZT86ICdjaGFubmVsLmludHJvJyB8ICdtZXNzYWdlLmRhdGUnO1xuICBkYXRlPzogc3RyaW5nIHwgRGF0ZTtcbiAgZXJyb3JTdGF0dXNDb2RlPzogbnVtYmVyO1xuICBldmVudD86IEV2ZW50PFxuICAgIERlZmF1bHRBdHRhY2htZW50VHlwZSxcbiAgICBEZWZhdWx0Q2hhbm5lbFR5cGUsXG4gICAgRGVmYXVsdENvbW1hbmRUeXBlLFxuICAgIERlZmF1bHRFdmVudFR5cGUsXG4gICAgRGVmYXVsdE1lc3NhZ2VUeXBlLFxuICAgIERlZmF1bHRSZWFjdGlvblR5cGUsXG4gICAgRGVmYXVsdFVzZXJUeXBlXG4gID47XG4gIHVucmVhZD86IGJvb2xlYW47XG4gIHJlYWRCeTogVXNlclJlc3BvbnNlPERlZmF1bHRVc2VyVHlwZT5bXTtcbn07XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRSZWFjdGlvblR5cGUgPSBVbmtub3duVHlwZTtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdFVzZXJUeXBlSW50ZXJuYWwgPSB7XG4gIGltYWdlPzogc3RyaW5nO1xuICBzdGF0dXM/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0VXNlclR5cGU8XG4gIFVzZXJUeXBlIGV4dGVuZHMgRGVmYXVsdFVzZXJUeXBlSW50ZXJuYWwgPSBEZWZhdWx0VXNlclR5cGVJbnRlcm5hbFxuPiA9IFVua25vd25UeXBlICZcbiAgRGVmYXVsdFVzZXJUeXBlSW50ZXJuYWwgJiB7XG4gICAgbXV0ZXM/OiBBcnJheTxNdXRlPFVzZXJUeXBlPj47XG4gIH07XG5cbmV4cG9ydCB0eXBlIFN0cmVhbU1lc3NhZ2U8XG4gIEF0IGV4dGVuZHMgRGVmYXVsdEF0dGFjaG1lbnRUeXBlID0gRGVmYXVsdEF0dGFjaG1lbnRUeXBlLFxuICBDaCBleHRlbmRzIERlZmF1bHRDaGFubmVsVHlwZSA9IERlZmF1bHRDaGFubmVsVHlwZSxcbiAgQ28gZXh0ZW5kcyBEZWZhdWx0Q29tbWFuZFR5cGUgPSBEZWZhdWx0Q29tbWFuZFR5cGUsXG4gIE1lIGV4dGVuZHMgRGVmYXVsdE1lc3NhZ2VUeXBlID0gRGVmYXVsdE1lc3NhZ2VUeXBlLFxuICBSZSBleHRlbmRzIERlZmF1bHRSZWFjdGlvblR5cGUgPSBEZWZhdWx0UmVhY3Rpb25UeXBlLFxuICBVcyBleHRlbmRzIERlZmF1bHRVc2VyVHlwZTxVcz4gPSBEZWZhdWx0VXNlclR5cGVcbj4gPSBGb3JtYXRNZXNzYWdlUmVzcG9uc2U8QXQsIENoLCBDbywgTWUsIFJlLCBVcz47XG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRVcGxvYWQgPSB7XG4gIGZpbGU6IEZpbGU7XG4gIHN0YXRlOiAnZXJyb3InIHwgJ3N1Y2Nlc3MnIHwgJ3VwbG9hZGluZyc7XG4gIHVybD86IHN0cmluZztcbiAgdHlwZTogJ2ltYWdlJyB8ICdmaWxlJztcbiAgcHJldmlld1VyaT86IHN0cmluZyB8IEFycmF5QnVmZmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTWVudGlvbkF1dGNvbXBsZXRlTGlzdEl0ZW1Db250ZXh0ID0ge1xuICBpdGVtOiBNZW50aW9uQXV0Y29tcGxldGVMaXN0SXRlbTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbW1hbmRBdXRvY29tcGxldGVMaXN0SXRlbUNvbnRleHQgPSB7XG4gIGl0ZW06IENvbWFuZEF1dG9jb21wbGV0ZUxpc3RJdGVtO1xufTtcblxuZXhwb3J0IHR5cGUgTWVudGlvbkF1dGNvbXBsZXRlTGlzdEl0ZW0gPSAoXG4gIHwgQ2hhbm5lbE1lbWJlclJlc3BvbnNlXG4gIHwgVXNlclJlc3BvbnNlXG4pICYge1xuICBhdXRvY29tcGxldGVMYWJlbDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ29tYW5kQXV0b2NvbXBsZXRlTGlzdEl0ZW0gPSBDb21tYW5kUmVzcG9uc2UgJiB7XG4gIGF1dG9jb21wbGV0ZUxhYmVsOiBzdHJpbmc7XG59O1xuIl19
|
package/esm2015/public-api.js
CHANGED
|
@@ -32,6 +32,7 @@ export * from './lib/attachment-preview-list/attachment-preview-list.component';
|
|
|
32
32
|
export * from './lib/message-reactions/message-reactions.component';
|
|
33
33
|
export * from './lib/notification/notification.component';
|
|
34
34
|
export * from './lib/notification-list/notification-list.component';
|
|
35
|
+
export * from './lib/thread/thread.component';
|
|
35
36
|
export * from './lib/modal/modal.component';
|
|
36
37
|
export * from './lib/read-by';
|
|
37
38
|
export * from './lib/is-image-attachment';
|
|
@@ -46,4 +47,4 @@ export * from './lib/stream-autocomplete-textarea.module';
|
|
|
46
47
|
export * from './lib/stream-textarea.module';
|
|
47
48
|
export * from './lib/injection-tokens';
|
|
48
49
|
export * from './lib/types';
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMkVBQTJFLENBQUM7QUFDMUYsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHN0cmVhbS1jaGF0LWFuZ3VsYXJcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGF0LWNsaWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoYW5uZWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90aGVtZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F0dGFjaG1lbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdHJlYW0taTE4bi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9hZGluZy1pbmRpY2F0b3IvbG9hZGluZy1pbmRpY2F0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UtYWN0aW9ucy1ib3gvbWVzc2FnZS1hY3Rpb25zLWJveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2hhbm5lbC9jaGFubmVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGFubmVsLWhlYWRlci9jaGFubmVsLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2hhbm5lbC1wcmV2aWV3L2NoYW5uZWwtcHJldmlldy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2hhbm5lbC1saXN0L2NoYW5uZWwtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2hhbm5lbC1saXN0L2NoYW5uZWwtbGlzdC10b2dnbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UvcGFyc2UtZGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlL3JlYWQtYnktdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlLWlucHV0L21lc3NhZ2UtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UtaW5wdXQvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UtaW5wdXQvYXV0b2NvbXBsZXRlLXRleHRhcmVhL2F1dG9jb21wbGV0ZS10ZXh0YXJlYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzc2FnZS1pbnB1dC9tZXNzYWdlLWlucHV0LWNvbmZpZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UtaW5wdXQvdGV4dGFyZWEuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UtaW5wdXQvdGV4dGFyZWEuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UtbGlzdC9tZXNzYWdlLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UtbGlzdC9pbWFnZS1sb2FkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzc2FnZS1saXN0L2dyb3VwLXN0eWxlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdHRhY2htZW50LWxpc3QvYXR0YWNobWVudC1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdHRhY2htZW50LXByZXZpZXctbGlzdC9hdHRhY2htZW50LXByZXZpZXctbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzc2FnZS1yZWFjdGlvbnMvbWVzc2FnZS1yZWFjdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25vdGlmaWNhdGlvbi1saXN0L25vdGlmaWNhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90aHJlYWQvdGhyZWFkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVhZC1ieSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pcy1pbWFnZS1hdHRhY2htZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lzLWltYWdlLWZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGV2aWNlLXdpZHRoJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UtcHJldmlldyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90cmFuc2xpdGVyYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdHJlYW0tY2hhdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RyZWFtLWF2YXRhci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RyZWFtLWF1dG9jb21wbGV0ZS10ZXh0YXJlYS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RyZWFtLXRleHRhcmVhLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbmplY3Rpb24tdG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzJztcbiJdfQ==
|