@banta/sdk 3.2.4 → 3.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/banta-sdk.umd.js +218 -71
- package/bundles/banta-sdk.umd.js.map +1 -1
- package/bundles/banta-sdk.umd.min.js +1 -1
- package/bundles/banta-sdk.umd.min.js.map +1 -1
- package/esm2015/lib/chat/banta-chat/banta-chat.component.js +7 -2
- package/esm2015/lib/comments/banta-comments/banta-comments.component.js +63 -13
- package/esm2015/lib/comments/comment/comment.component.js +11 -3
- package/esm2015/lib/comments/comment-field/comment-field.component.js +7 -2
- package/esm2015/lib/comments/comment-sort/comment-sort.component.js +34 -0
- package/esm2015/lib/comments/comment-view/comment-view.component.js +16 -7
- package/esm2015/lib/comments/comments.module.js +10 -4
- package/esm2015/lib/comments/index.js +2 -1
- package/esm2015/lib/common/chat-backend.service.js +1 -1
- package/fesm2015/banta-sdk.js +137 -25
- package/fesm2015/banta-sdk.js.map +1 -1
- package/lib/chat/banta-chat/banta-chat.component.d.ts +1 -0
- package/lib/comments/banta-comments/banta-comments.component.d.ts +17 -4
- package/lib/comments/comment/comment.component.d.ts +3 -0
- package/lib/comments/comment-field/comment-field.component.d.ts +2 -1
- package/lib/comments/comment-sort/comment-sort.component.d.ts +9 -0
- package/lib/comments/comment-view/comment-view.component.d.ts +3 -0
- package/lib/comments/index.d.ts +1 -0
- package/lib/common/chat-backend.service.d.ts +3 -3
- package/package.json +2 -2
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component, Input, Output } from '@angular/core';
|
|
2
|
+
import { CommentsOrder } from "@banta/common";
|
|
3
|
+
import { Subject } from "rxjs";
|
|
4
|
+
export class CommentSortComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.commentsOrder = CommentsOrder;
|
|
7
|
+
this._sortChange = new Subject();
|
|
8
|
+
this._sort = CommentsOrder.LIKES;
|
|
9
|
+
}
|
|
10
|
+
get sort() {
|
|
11
|
+
return this._sort;
|
|
12
|
+
}
|
|
13
|
+
set sort(value) {
|
|
14
|
+
if (this._sort !== value) {
|
|
15
|
+
this._sort = value;
|
|
16
|
+
setTimeout(() => this._sortChange.next(value));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
get sortChange() {
|
|
20
|
+
return this._sortChange.asObservable();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
CommentSortComponent.decorators = [
|
|
24
|
+
{ type: Component, args: [{
|
|
25
|
+
selector: 'banta-comment-sort',
|
|
26
|
+
template: "<div class=\"sort-row\">\r\n <mat-form-field>\r\n <mat-label>Sort by</mat-label>\r\n <mat-select [(value)]=\"sort\" >\r\n <mat-option [value]=\"commentsOrder.NEWEST\">Newest</mat-option>\r\n <mat-option [value]=\"commentsOrder.OLDEST\">Oldest</mat-option>\r\n <mat-option [value]=\"commentsOrder.LIKES\">Likes</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n",
|
|
27
|
+
styles: [".sort-row{display:flex;justify-content:end;padding-right:3em}"]
|
|
28
|
+
},] }
|
|
29
|
+
];
|
|
30
|
+
CommentSortComponent.propDecorators = {
|
|
31
|
+
sort: [{ type: Input }],
|
|
32
|
+
sortChange: [{ type: Output }]
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1zb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9EZXYvYXN0cm9uYXV0bGFicy9iYW50YS9wYWNrYWdlcy9mcm9udGVuZC9wcm9qZWN0cy9zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbW1lbnRzL2NvbW1lbnQtc29ydC9jb21tZW50LXNvcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPL0IsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU9FLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3RCLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFDM0MsVUFBSyxHQUFrQixhQUFhLENBQUMsS0FBSyxDQUFDO0lBa0JyRCxDQUFDO0lBaEJDLElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsS0FBSztRQUNaLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUQsSUFDSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7OztZQTFCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsOFpBQTRDOzthQUU3Qzs7O21CQU9FLEtBQUs7eUJBWUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tZW50c09yZGVyIH0gZnJvbSBcIkBiYW50YS9jb21tb25cIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JhbnRhLWNvbW1lbnQtc29ydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnQtc29ydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29tbWVudC1zb3J0LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbWVudFNvcnRDb21wb25lbnQge1xyXG5cclxuICBjb21tZW50c09yZGVyID0gQ29tbWVudHNPcmRlcjtcclxuICBwcml2YXRlIF9zb3J0Q2hhbmdlID0gbmV3IFN1YmplY3Q8Q29tbWVudHNPcmRlcj4oKTtcclxuICBwcml2YXRlIF9zb3J0OiBDb21tZW50c09yZGVyID0gQ29tbWVudHNPcmRlci5MSUtFUztcclxuXHJcbiAgQElucHV0KCkgXHJcbiAgZ2V0IHNvcnQoKSB7IFxyXG4gICAgcmV0dXJuIHRoaXMuX3NvcnQ7XHJcbiAgfVxyXG5cclxuICBzZXQgc29ydCh2YWx1ZSkge1xyXG4gICAgaWYgKHRoaXMuX3NvcnQgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3NvcnQgPSB2YWx1ZTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zb3J0Q2hhbmdlLm5leHQodmFsdWUpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGdldCBzb3J0Q2hhbmdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NvcnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -12,6 +12,7 @@ export class CommentViewComponent {
|
|
|
12
12
|
this._userSelected = new Subject();
|
|
13
13
|
this._usernameSelected = new Subject();
|
|
14
14
|
this._avatarSelected = new Subject();
|
|
15
|
+
this._shared = new Subject();
|
|
15
16
|
this.showEmptyState = true;
|
|
16
17
|
this.allowReplies = true;
|
|
17
18
|
this.menuMessage = null;
|
|
@@ -43,6 +44,9 @@ export class CommentViewComponent {
|
|
|
43
44
|
get avatarSelected() {
|
|
44
45
|
return this._avatarSelected;
|
|
45
46
|
}
|
|
47
|
+
get shared() {
|
|
48
|
+
return this._shared;
|
|
49
|
+
}
|
|
46
50
|
get source() {
|
|
47
51
|
return this._source;
|
|
48
52
|
}
|
|
@@ -64,6 +68,9 @@ export class CommentViewComponent {
|
|
|
64
68
|
selectAvatar(user) {
|
|
65
69
|
this._avatarSelected.next(user);
|
|
66
70
|
}
|
|
71
|
+
sharedMessage(message) {
|
|
72
|
+
this._shared.next(message);
|
|
73
|
+
}
|
|
67
74
|
set source(value) {
|
|
68
75
|
if (this._sourceSubs) {
|
|
69
76
|
this._sourceSubs.unsubscribe();
|
|
@@ -71,7 +78,8 @@ export class CommentViewComponent {
|
|
|
71
78
|
}
|
|
72
79
|
this._source = value;
|
|
73
80
|
if (value) {
|
|
74
|
-
|
|
81
|
+
console.log(`[banta-comment-view] Subscribing to source...`);
|
|
82
|
+
const messages = (value.messages || []).slice();
|
|
75
83
|
this.messages = messages;
|
|
76
84
|
this.olderMessages = messages.splice(this.maxVisibleMessages, messages.length);
|
|
77
85
|
this.hasMore = this.olderMessages.length > 0;
|
|
@@ -146,9 +154,9 @@ export class CommentViewComponent {
|
|
|
146
154
|
isScrolledToLatest() {
|
|
147
155
|
if (!this.messageContainer)
|
|
148
156
|
return false;
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
157
|
+
const el = this.messageContainer.nativeElement;
|
|
158
|
+
const currentScroll = el.scrollTop;
|
|
159
|
+
const currentTotal = el.scrollHeight - el.offsetHeight;
|
|
152
160
|
return currentScroll > currentTotal - 10;
|
|
153
161
|
}
|
|
154
162
|
messageSent(message) {
|
|
@@ -160,7 +168,7 @@ export class CommentViewComponent {
|
|
|
160
168
|
scrollToLatest() {
|
|
161
169
|
if (!this.messageContainer)
|
|
162
170
|
return;
|
|
163
|
-
|
|
171
|
+
const el = this.messageContainer.nativeElement;
|
|
164
172
|
el.scrollTop = el.scrollHeight;
|
|
165
173
|
}
|
|
166
174
|
mentionsMe(message) {
|
|
@@ -180,7 +188,7 @@ export class CommentViewComponent {
|
|
|
180
188
|
CommentViewComponent.decorators = [
|
|
181
189
|
{ type: Component, args: [{
|
|
182
190
|
selector: 'banta-comment-view',
|
|
183
|
-
template: "<div class=\"message-container\">\r\n <ng-content select=\"[data-before]\"></ng-content>\r\n
|
|
191
|
+
template: "<div class=\"message-container\">\r\n <ng-content select=\"[data-before]\"></ng-content>\r\n\r\n <a mat-button class=\"nav\" [class.visible]=\"isViewingMore\" href=\"javascript:;\" (click)=\"showNew()\">\r\n <mat-icon>file_upload</mat-icon>\r\n New\r\n <ng-container *ngIf=\"newMessages.length >= 1\">\r\n ({{newMessages.length}})\r\n </ng-container>\r\n </a>\r\n\r\n <ng-container *ngIf=\"messages.length === 0\">\r\n <div class=\"empty-state\" *ngIf=\"showEmptyState\">\r\n Be the first to comment!\r\n </div>\r\n </ng-container>\r\n <banta-comment\r\n *ngFor=\"let message of messages; trackBy: messageIdentity\"\r\n class=\"abbreviated\"\r\n [message]=\"message\"\r\n (click)=\"isViewingMore = true\"\r\n [showReplyAction]=\"allowReplies\"\r\n\t\t(userSelected)=\"selectMessageUser(message)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n\t\t(usernameSelected)=\"selectUsername($event)\"\r\n (upvoted)=\"upvoteMessage(message)\"\r\n (reported)=\"reportMessage(message)\"\r\n (selected)=\"selectMessage(message)\"\r\n (shared)=\"sharedMessage($event)\"\r\n ></banta-comment>\r\n\r\n <a mat-button class=\"nav\" [class.visible]=\"hasMore && !isLoadingMore\" href=\"javascript:;\" (click)=\"showMore()\">Show more</a>\r\n\r\n <div class=\"loading-more\" *ngIf=\"isLoadingMore\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n\r\n <!-- <div style=\"color: #666\">\r\n n={{newMessages.length}}, m={{messages.length}}, o={{olderMessages.length}},\r\n v={{maxVisibleMessages}}, M={{maxMessages}}\r\n </div> -->\r\n\r\n <ng-content select=\":not([data-before])\"></ng-content>\r\n</div>\r\n",
|
|
184
192
|
styles: [":host{display:flex;flex-direction:column;flex-grow:1;opacity:1;transition:opacity .2s ease-in}.message-container{background:#fff;color:#111;flex-grow:1;opacity:1;overflow-x:hidden;padding:.5em 1em 3em .5em;position:relative;transition:opacity .5s ease-in-out}.message-container.no-scroll{height:auto;overflow-y:visible}.message-container.faded{opacity:.25}.message-container .overlay{bottom:0;left:0;position:absolute;right:0;top:0;z-index:10}:host.fixed-height .message-container{overflow-y:auto}:host-context(.mat-dark-theme) .message-container{background:#111;color:#fff}.empty-state{color:#666;margin:3em;text-align:center}:host-context(.mat-dark-theme) .empty-state{color:#666}a.nav{background:#222;border-radius:2em;opacity:0;pointer-events:none;position:absolute;right:.5em;text-align:center;transition:opacity .4s ease-in-out;z-index:10}a.nav.visible{opacity:1;pointer-events:auto}.loading-more{margin:0 auto;padding:2em;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (max-width:400px){.message-container{padding:0 0 3em}}"]
|
|
185
193
|
},] }
|
|
186
194
|
];
|
|
@@ -197,6 +205,7 @@ CommentViewComponent.propDecorators = {
|
|
|
197
205
|
upvoted: [{ type: Output }],
|
|
198
206
|
usernameSelected: [{ type: Output }],
|
|
199
207
|
avatarSelected: [{ type: Output }],
|
|
208
|
+
shared: [{ type: Output }],
|
|
200
209
|
source: [{ type: Input }],
|
|
201
210
|
genericAvatarUrl: [{ type: Input }],
|
|
202
211
|
messageContainer: [{ type: ViewChild, args: ['messageContainer',] }],
|
|
@@ -204,4 +213,4 @@ CommentViewComponent.propDecorators = {
|
|
|
204
213
|
maxVisibleMessages: [{ type: Input }],
|
|
205
214
|
newestLast: [{ type: Input }]
|
|
206
215
|
};
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9EZXYvYXN0cm9uYXV0bGFicy9iYW50YS9wYWNrYWdlcy9mcm9udGVuZC9wcm9qZWN0cy9zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbW1lbnRzL2NvbW1lbnQtdmlldy9jb21tZW50LXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBT2xELE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsWUFDWSxPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUtoQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFDdkMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFDdEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFDdkMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBQzNDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDeEMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRzlDLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBR3RCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBb0NwQixnQkFBVyxHQUFpQixJQUFJLENBQUM7UUFDakMsYUFBUSxHQUFtQixFQUFFLENBQUM7UUFnRTlCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBR25CLHVCQUFrQixHQUFZLEdBQUcsQ0FBQztRQUdsQyxlQUFV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QUdoQyxNQUFNOzJCQUtOLE1BQU07dUJBS04sTUFBTTtzQkFLTixNQUFNOytCQUtULE1BQU07NkJBS04sTUFBTTtxQkFTSCxLQUFLOytCQXNETCxLQUFLOytCQUdMLFNBQVMsU0FBQyxrQkFBa0I7MEJBRzVCLEtBQUs7aUNBR0wsS0FBSzt5QkFHTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBPdXRwdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVXNlciwgQ2hhdE1lc3NhZ2UsIENoYXRTb3VyY2UgfSBmcm9tICdAYmFudGEvY29tbW9uJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENoYXRCYWNrZW5kU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb21tb25cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiYW50YS1jb21tZW50LXZpZXcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnQtdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tZW50LXZpZXcuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbWVudFZpZXdDb21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBiYWNrZW5kIDogQ2hhdEJhY2tlbmRTZXJ2aWNlXHJcbiAgICApIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc291cmNlU3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgIHByaXZhdGUgX3NvdXJjZSA6IENoYXRTb3VyY2U7XHJcbiAgICBwcml2YXRlIF9zZWxlY3RlZCA9IG5ldyBTdWJqZWN0PENoYXRNZXNzYWdlPigpO1xyXG4gICAgcHJpdmF0ZSBfdXB2b3RlZCA9IG5ldyBTdWJqZWN0PENoYXRNZXNzYWdlPigpO1xyXG4gICAgcHJpdmF0ZSBfcmVwb3J0ZWQgPSBuZXcgU3ViamVjdDxDaGF0TWVzc2FnZT4oKTtcclxuICAgIHByaXZhdGUgX3VzZXJTZWxlY3RlZCA9IG5ldyBTdWJqZWN0PENoYXRNZXNzYWdlPigpO1xyXG4gICAgcHJpdmF0ZSBfdXNlcm5hbWVTZWxlY3RlZCA9IG5ldyBTdWJqZWN0PFVzZXI+KCk7XHJcbiAgICBwcml2YXRlIF9hdmF0YXJTZWxlY3RlZCA9IG5ldyBTdWJqZWN0PFVzZXI+KCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNob3dFbXB0eVN0YXRlID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKSBcclxuICAgIGFsbG93UmVwbGllcyA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZml4ZWQtaGVpZ2h0JylcclxuICAgIGZpeGVkSGVpZ2h0IDogYm9vbGVhbjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGdldCBzZWxlY3RlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBnZXQgdXNlclNlbGVjdGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyU2VsZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBnZXQgcmVwb3J0ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcG9ydGVkO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZ2V0IHVwdm90ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Vwdm90ZWQ7XHJcbiAgICB9XHJcblxyXG5cdEBPdXRwdXQoKVxyXG5cdGdldCB1c2VybmFtZVNlbGVjdGVkKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3VzZXJuYW1lU2VsZWN0ZWQ7XHJcblx0fVxyXG5cclxuXHRAT3V0cHV0KClcclxuXHRnZXQgYXZhdGFyU2VsZWN0ZWQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fYXZhdGFyU2VsZWN0ZWQ7XHJcblx0fVxyXG5cclxuICAgIG1lbnVNZXNzYWdlIDogQ2hhdE1lc3NhZ2UgPSBudWxsO1xyXG4gICAgbWVzc2FnZXMgOiBDaGF0TWVzc2FnZVtdID0gW107XHJcbiAgICBjdXJyZW50VXNlciA6IFVzZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzb3VyY2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICB1cHZvdGVNZXNzYWdlKG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMuX3Vwdm90ZWQubmV4dChtZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXBvcnRNZXNzYWdlKG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydGVkLm5leHQobWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHNlbGVjdE1lc3NhZ2UobWVzc2FnZSA6IENoYXRNZXNzYWdlKSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQubmV4dChtZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RNZXNzYWdlVXNlcihtZXNzYWdlIDogQ2hhdE1lc3NhZ2UpIHtcclxuICAgICAgICB0aGlzLl91c2VyU2VsZWN0ZWQubmV4dChtZXNzYWdlKTtcclxuICAgIH1cclxuXHJcblx0c2VsZWN0VXNlcm5hbWUodXNlcjogVXNlcikge1xyXG5cdFx0dGhpcy5fdXNlcm5hbWVTZWxlY3RlZC5uZXh0KHVzZXIpO1xyXG5cdH1cclxuXHJcblx0c2VsZWN0QXZhdGFyKHVzZXI6IFVzZXIpIHtcclxuXHRcdHRoaXMuX2F2YXRhclNlbGVjdGVkLm5leHQodXNlcik7XHJcblx0fVxyXG5cclxuICAgIHNldCBzb3VyY2UodmFsdWUpIHtcclxuICAgICAgICBpZiAodGhpcy5fc291cmNlU3Vicykge1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2VTdWJzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NvdXJjZVN1YnMgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGxldCBtZXNzYWdlcyA9ICh2YWx1ZS5tZXNzYWdlcyB8fCBbXSkuc2xpY2UoKTtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlcyA9IG1lc3NhZ2VzO1xyXG4gICAgICAgICAgICB0aGlzLm9sZGVyTWVzc2FnZXMgPSBtZXNzYWdlcy5zcGxpY2UodGhpcy5tYXhWaXNpYmxlTWVzc2FnZXMsIG1lc3NhZ2VzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzTW9yZSA9IHRoaXMub2xkZXJNZXNzYWdlcy5sZW5ndGggPiAwO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fc291cmNlU3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgICAgICAgICAgdGhpcy5fc291cmNlU3Vicy5hZGQodGhpcy5fc291cmNlLm1lc3NhZ2VSZWNlaXZlZC5zdWJzY3JpYmUobXNnID0+IHRoaXMubWVzc2FnZVJlY2VpdmVkKG1zZykpKTtcclxuICAgICAgICAgICAgdGhpcy5fc291cmNlU3Vicy5hZGQodGhpcy5fc291cmNlLm1lc3NhZ2VTZW50LnN1YnNjcmliZShtc2cgPT4gdGhpcy5tZXNzYWdlU2VudChtc2cpKSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fc291cmNlLmN1cnJlbnRVc2VyQ2hhbmdlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc291cmNlU3Vicy5hZGQoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc291cmNlLmN1cnJlbnRVc2VyQ2hhbmdlZC5zdWJzY3JpYmUodXNlciA9PiB0aGlzLmN1cnJlbnRVc2VyID0gdXNlcilcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdlbmVyaWNBdmF0YXJVcmwgOiBzdHJpbmc7XHJcbiAgICBcclxuICAgIEBWaWV3Q2hpbGQoJ21lc3NhZ2VDb250YWluZXInKVxyXG4gICAgbWVzc2FnZUNvbnRhaW5lciA6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBtYXhNZXNzYWdlcyA9IDIwMDA7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIG1heFZpc2libGVNZXNzYWdlcyA6IG51bWJlciA9IDIwMDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbmV3ZXN0TGFzdCA9IGZhbHNlO1xyXG5cclxuICAgIGlzVmlld2luZ01vcmUgPSBmYWxzZTtcclxuICAgIGlzTG9hZGluZ01vcmUgPSBmYWxzZTtcclxuICAgIGhhc01vcmUgPSBmYWxzZTtcclxuXHJcbiAgICBuZXdNZXNzYWdlcyA6IENoYXRNZXNzYWdlW10gPSBbXTtcclxuICAgIG9sZGVyTWVzc2FnZXMgOiBDaGF0TWVzc2FnZVtdID0gW107XHJcblxyXG4gICAgbWVzc2FnZUlkZW50aXR5KGluZGV4IDogbnVtYmVyLCBjaGF0TWVzc2FnZSA6IENoYXRNZXNzYWdlKSB7XHJcbiAgICAgICAgcmV0dXJuIGNoYXRNZXNzYWdlLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNob3dOZXcoKSB7XHJcbiAgICAgICAgdGhpcy5pc1ZpZXdpbmdNb3JlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcyA9IHRoaXMubmV3TWVzc2FnZXMuc3BsaWNlKDAsIHRoaXMubmV3TWVzc2FnZXMubGVuZ3RoKS5jb25jYXQodGhpcy5tZXNzYWdlcyk7XHJcbiAgICAgICAgbGV0IG92ZXJmbG93ID0gdGhpcy5tZXNzYWdlcy5zcGxpY2UodGhpcy5tYXhWaXNpYmxlTWVzc2FnZXMsIHRoaXMubWVzc2FnZXMubGVuZ3RoKTtcclxuICAgICAgICB0aGlzLm9sZGVyTWVzc2FnZXMgPSBvdmVyZmxvdy5jb25jYXQodGhpcy5vbGRlck1lc3NhZ2VzKTtcclxuICAgICAgICB0aGlzLm9sZGVyTWVzc2FnZXMuc3BsaWNlKHRoaXMubWF4TWVzc2FnZXMgLSB0aGlzLm1heFZpc2libGVNZXNzYWdlcywgdGhpcy5vbGRlck1lc3NhZ2VzLmxlbmd0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2hvd01vcmUoKSB7XHJcbiAgICAgICAgdGhpcy5pc1ZpZXdpbmdNb3JlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMub2xkZXJNZXNzYWdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzID0gdGhpcy5tZXNzYWdlcy5jb25jYXQodGhpcy5vbGRlck1lc3NhZ2VzLnNwbGljZSgwLCA1MCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNvdXJjZS5sb2FkQWZ0ZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZSA9IHRydWU7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgbGV0IGxhc3RNZXNzYWdlID0gdGhpcy5tZXNzYWdlc1t0aGlzLm1lc3NhZ2VzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgICAgICAgICAgbGV0IG1lc3NhZ2VzID0gYXdhaXQgdGhpcy5zb3VyY2UubG9hZEFmdGVyKGxhc3RNZXNzYWdlLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlcyA9IHRoaXMubWVzc2FnZXMuY29uY2F0KG1lc3NhZ2VzKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc01vcmUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhc01vcmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZE1lc3NhZ2UobWVzc2FnZSA6IENoYXRNZXNzYWdlKSB7XHJcbiAgICAgICAgbGV0IGRlc3RpbmF0aW9uID0gdGhpcy5tZXNzYWdlcztcclxuICAgICAgICBsZXQgYnVja2V0ID0gdGhpcy5vbGRlck1lc3NhZ2VzO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1ZpZXdpbmdNb3JlKSB7XHJcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gdGhpcy5uZXdNZXNzYWdlcztcclxuICAgICAgICAgICAgYnVja2V0ID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm5ld2VzdExhc3QpIHtcclxuICAgICAgICAgICAgZGVzdGluYXRpb24ucHVzaChtZXNzYWdlKTtcclxuICAgICAgICAgICAgbGV0IG92ZXJmbG93ID0gZGVzdGluYXRpb24uc3BsaWNlKHRoaXMubWF4VmlzaWJsZU1lc3NhZ2VzLCBkZXN0aW5hdGlvbi5sZW5ndGgpO1xyXG4gICAgICAgICAgICBidWNrZXQ/LnB1c2goLi4ub3ZlcmZsb3cpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uLnVuc2hpZnQobWVzc2FnZSk7XHJcbiAgICAgICAgICAgIGxldCBvdmVyZmxvdyA9IGRlc3RpbmF0aW9uLnNwbGljZSh0aGlzLm1heFZpc2libGVNZXNzYWdlcywgZGVzdGluYXRpb24ubGVuZ3RoKTtcclxuICAgICAgICAgICAgYnVja2V0Py51bnNoaWZ0KC4uLm92ZXJmbG93KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChidWNrZXQ/Lmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRoaXMuaGFzTW9yZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlUmVjZWl2ZWQobWVzc2FnZSA6IENoYXRNZXNzYWdlKSB7XHJcbiAgICAgICAgdGhpcy5hZGRNZXNzYWdlKG1lc3NhZ2UpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1Njcm9sbGVkVG9MYXRlc3QoKSlcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNjcm9sbFRvTGF0ZXN0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU2Nyb2xsZWRUb0xhdGVzdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZUNvbnRhaW5lcilcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgICBsZXQgZWwgPSB0aGlzLm1lc3NhZ2VDb250YWluZXIubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBsZXQgY3VycmVudFNjcm9sbCA9IGVsLnNjcm9sbFRvcDtcclxuICAgICAgICBsZXQgY3VycmVudFRvdGFsID0gZWwuc2Nyb2xsSGVpZ2h0IC0gZWwub2Zmc2V0SGVpZ2h0O1xyXG4gICAgXHJcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRTY3JvbGwgPiBjdXJyZW50VG90YWwgLSAxMDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZW50KG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMuYWRkTWVzc2FnZShtZXNzYWdlKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZUNvbnRhaW5lcilcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLnNjcm9sbFRvTGF0ZXN0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2Nyb2xsVG9MYXRlc3QoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm1lc3NhZ2VDb250YWluZXIpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBcclxuICAgICAgICBsZXQgZWwgPSB0aGlzLm1lc3NhZ2VDb250YWluZXIubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBlbC5zY3JvbGxUb3AgPSBlbC5zY3JvbGxIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgbWVudGlvbnNNZShtZXNzYWdlIDogQ2hhdE1lc3NhZ2UpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudFVzZXIpXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKG1lc3NhZ2UubWVzc2FnZS5pbmNsdWRlcyhgQCR7dGhpcy5jdXJyZW50VXNlci51c2VybmFtZX1gKSlcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGF2YXRhckZvclVzZXIodXNlciA6IFVzZXIpIHtcclxuICAgICAgICBsZXQgdXJsID0gdGhpcy5nZW5lcmljQXZhdGFyVXJsO1xyXG5cclxuICAgICAgICBpZiAodXNlciAmJiB1c2VyLmF2YXRhclVybClcclxuICAgICAgICAgICAgdXJsID0gdXNlci5hdmF0YXJVcmw7XHJcbiAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuIGB1cmwoJHt1cmx9KWA7XHJcbiAgICB9XHJcbn0iXX0=
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9EZXYvYXN0cm9uYXV0bGFicy9iYW50YS9wYWNrYWdlcy9mcm9udGVuZC9wcm9qZWN0cy9zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbW1lbnRzL2NvbW1lbnQtdmlldy9jb21tZW50LXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBT2xELE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsWUFDWSxPQUEyQjtRQUEzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUsvQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFDdkMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFDdEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFDdkMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBQzNDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDeEMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBRzdDLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBR3RCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBeUNwQixnQkFBVyxHQUFnQixJQUFJLENBQUM7UUFDaEMsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFxRTdCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FB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O1lBQ3RCLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRXpCLE9BQU8sT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN6QixDQUFDOzs7WUF0UUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLHd3REFBNEM7O2FBRS9DOzs7WUFOUSxrQkFBa0I7Ozs2QkF3QnRCLEtBQUs7MkJBR0wsS0FBSzswQkFHTCxLQUFLLFlBQ0wsV0FBVyxTQUFDLG9CQUFvQjt1QkFHaEMsTUFBTTsyQkFLTixNQUFNO3VCQUtOLE1BQU07c0JBS04sTUFBTTsrQkFLTixNQUFNOzZCQUtOLE1BQU07cUJBS04sTUFBTTtxQkFTTixLQUFLOytCQTJETCxLQUFLOytCQUdMLFNBQVMsU0FBQyxrQkFBa0I7MEJBRzVCLEtBQUs7aUNBR0wsS0FBSzt5QkFHTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBPdXRwdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVXNlciwgQ2hhdE1lc3NhZ2UsIENoYXRTb3VyY2UgfSBmcm9tICdAYmFudGEvY29tbW9uJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENoYXRCYWNrZW5kU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb21tb25cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiYW50YS1jb21tZW50LXZpZXcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnQtdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tZW50LXZpZXcuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbWVudFZpZXdDb21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBiYWNrZW5kOiBDaGF0QmFja2VuZFNlcnZpY2VcclxuICAgICkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zb3VyY2VTdWJzID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gICAgcHJpdmF0ZSBfc291cmNlOiBDaGF0U291cmNlO1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQgPSBuZXcgU3ViamVjdDxDaGF0TWVzc2FnZT4oKTtcclxuICAgIHByaXZhdGUgX3Vwdm90ZWQgPSBuZXcgU3ViamVjdDxDaGF0TWVzc2FnZT4oKTtcclxuICAgIHByaXZhdGUgX3JlcG9ydGVkID0gbmV3IFN1YmplY3Q8Q2hhdE1lc3NhZ2U+KCk7XHJcbiAgICBwcml2YXRlIF91c2VyU2VsZWN0ZWQgPSBuZXcgU3ViamVjdDxDaGF0TWVzc2FnZT4oKTtcclxuICAgIHByaXZhdGUgX3VzZXJuYW1lU2VsZWN0ZWQgPSBuZXcgU3ViamVjdDxVc2VyPigpO1xyXG4gICAgcHJpdmF0ZSBfYXZhdGFyU2VsZWN0ZWQgPSBuZXcgU3ViamVjdDxVc2VyPigpO1xyXG4gICAgcHJpdmF0ZSBfc2hhcmVkID0gbmV3IFN1YmplY3Q8Q2hhdE1lc3NhZ2U+KCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNob3dFbXB0eVN0YXRlID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgYWxsb3dSZXBsaWVzID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5maXhlZC1oZWlnaHQnKVxyXG4gICAgZml4ZWRIZWlnaHQ6IGJvb2xlYW47XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBnZXQgc2VsZWN0ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZ2V0IHVzZXJTZWxlY3RlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdXNlclNlbGVjdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZ2V0IHJlcG9ydGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZXBvcnRlZDtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGdldCB1cHZvdGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cHZvdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZ2V0IHVzZXJuYW1lU2VsZWN0ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJuYW1lU2VsZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBnZXQgYXZhdGFyU2VsZWN0ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YXRhclNlbGVjdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZ2V0IHNoYXJlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2hhcmVkO1xyXG4gICAgfVxyXG5cclxuICAgIG1lbnVNZXNzYWdlOiBDaGF0TWVzc2FnZSA9IG51bGw7XHJcbiAgICBtZXNzYWdlczogQ2hhdE1lc3NhZ2VbXSA9IFtdO1xyXG4gICAgY3VycmVudFVzZXI6IFVzZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzb3VyY2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICB1cHZvdGVNZXNzYWdlKG1lc3NhZ2U6IENoYXRNZXNzYWdlKSB7XHJcbiAgICAgICAgdGhpcy5fdXB2b3RlZC5uZXh0KG1lc3NhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlcG9ydE1lc3NhZ2UobWVzc2FnZTogQ2hhdE1lc3NhZ2UpIHtcclxuICAgICAgICB0aGlzLl9yZXBvcnRlZC5uZXh0KG1lc3NhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdE1lc3NhZ2UobWVzc2FnZTogQ2hhdE1lc3NhZ2UpIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZC5uZXh0KG1lc3NhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdE1lc3NhZ2VVc2VyKG1lc3NhZ2U6IENoYXRNZXNzYWdlKSB7XHJcbiAgICAgICAgdGhpcy5fdXNlclNlbGVjdGVkLm5leHQobWVzc2FnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0VXNlcm5hbWUodXNlcjogVXNlcikge1xyXG4gICAgICAgIHRoaXMuX3VzZXJuYW1lU2VsZWN0ZWQubmV4dCh1c2VyKTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RBdmF0YXIodXNlcjogVXNlcikge1xyXG4gICAgICAgIHRoaXMuX2F2YXRhclNlbGVjdGVkLm5leHQodXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgc2hhcmVkTWVzc2FnZShtZXNzYWdlOiBDaGF0TWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMuX3NoYXJlZC5uZXh0KG1lc3NhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBzb3VyY2UodmFsdWUpIHtcclxuICAgICAgICBpZiAodGhpcy5fc291cmNlU3Vicykge1xyXG4gICAgICAgICAgICB0aGlzLl9zb3VyY2VTdWJzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NvdXJjZVN1YnMgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9zb3VyY2UgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBbYmFudGEtY29tbWVudC12aWV3XSBTdWJzY3JpYmluZyB0byBzb3VyY2UuLi5gKTtcclxuICAgICAgICAgICAgY29uc3QgbWVzc2FnZXMgPSAodmFsdWUubWVzc2FnZXMgfHwgW10pLnNsaWNlKCk7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXMgPSBtZXNzYWdlcztcclxuICAgICAgICAgICAgdGhpcy5vbGRlck1lc3NhZ2VzID0gbWVzc2FnZXMuc3BsaWNlKHRoaXMubWF4VmlzaWJsZU1lc3NhZ2VzLCBtZXNzYWdlcy5sZW5ndGgpO1xyXG4gICAgICAgICAgICB0aGlzLmhhc01vcmUgPSB0aGlzLm9sZGVyTWVzc2FnZXMubGVuZ3RoID4gMDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3NvdXJjZVN1YnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NvdXJjZVN1YnMuYWRkKHRoaXMuX3NvdXJjZS5tZXNzYWdlUmVjZWl2ZWQuc3Vic2NyaWJlKG1zZyA9PiB0aGlzLm1lc3NhZ2VSZWNlaXZlZChtc2cpKSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NvdXJjZVN1YnMuYWRkKHRoaXMuX3NvdXJjZS5tZXNzYWdlU2VudC5zdWJzY3JpYmUobXNnID0+IHRoaXMubWVzc2FnZVNlbnQobXNnKSkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX3NvdXJjZS5jdXJyZW50VXNlckNoYW5nZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZVN1YnMuYWRkKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZS5jdXJyZW50VXNlckNoYW5nZWQuc3Vic2NyaWJlKHVzZXIgPT4gdGhpcy5jdXJyZW50VXNlciA9IHVzZXIpXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZW5lcmljQXZhdGFyVXJsOiBzdHJpbmc7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbWVzc2FnZUNvbnRhaW5lcicpXHJcbiAgICBtZXNzYWdlQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbWF4TWVzc2FnZXMgPSAyMDAwO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBtYXhWaXNpYmxlTWVzc2FnZXM6IG51bWJlciA9IDIwMDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbmV3ZXN0TGFzdCA9IGZhbHNlO1xyXG5cclxuICAgIGlzVmlld2luZ01vcmUgPSBmYWxzZTtcclxuICAgIGlzTG9hZGluZ01vcmUgPSBmYWxzZTtcclxuICAgIGhhc01vcmUgPSBmYWxzZTtcclxuXHJcbiAgICBuZXdNZXNzYWdlczogQ2hhdE1lc3NhZ2VbXSA9IFtdO1xyXG4gICAgb2xkZXJNZXNzYWdlczogQ2hhdE1lc3NhZ2VbXSA9IFtdO1xyXG5cclxuICAgIG1lc3NhZ2VJZGVudGl0eShpbmRleDogbnVtYmVyLCBjaGF0TWVzc2FnZTogQ2hhdE1lc3NhZ2UpIHtcclxuICAgICAgICByZXR1cm4gY2hhdE1lc3NhZ2UuaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2hvd05ldygpIHtcclxuICAgICAgICB0aGlzLmlzVmlld2luZ01vcmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VzID0gdGhpcy5uZXdNZXNzYWdlcy5zcGxpY2UoMCwgdGhpcy5uZXdNZXNzYWdlcy5sZW5ndGgpLmNvbmNhdCh0aGlzLm1lc3NhZ2VzKTtcclxuICAgICAgICBsZXQgb3ZlcmZsb3cgPSB0aGlzLm1lc3NhZ2VzLnNwbGljZSh0aGlzLm1heFZpc2libGVNZXNzYWdlcywgdGhpcy5tZXNzYWdlcy5sZW5ndGgpO1xyXG4gICAgICAgIHRoaXMub2xkZXJNZXNzYWdlcyA9IG92ZXJmbG93LmNvbmNhdCh0aGlzLm9sZGVyTWVzc2FnZXMpO1xyXG4gICAgICAgIHRoaXMub2xkZXJNZXNzYWdlcy5zcGxpY2UodGhpcy5tYXhNZXNzYWdlcyAtIHRoaXMubWF4VmlzaWJsZU1lc3NhZ2VzLCB0aGlzLm9sZGVyTWVzc2FnZXMubGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBzaG93TW9yZSgpIHtcclxuICAgICAgICB0aGlzLmlzVmlld2luZ01vcmUgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5vbGRlck1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZXMgPSB0aGlzLm1lc3NhZ2VzLmNvbmNhdCh0aGlzLm9sZGVyTWVzc2FnZXMuc3BsaWNlKDAsIDUwKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc291cmNlLmxvYWRBZnRlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbGFzdE1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VzW3RoaXMubWVzc2FnZXMubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZXMgPSBhd2FpdCB0aGlzLnNvdXJjZS5sb2FkQWZ0ZXIobGFzdE1lc3NhZ2UsIDEwMCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VzID0gdGhpcy5tZXNzYWdlcy5jb25jYXQobWVzc2FnZXMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZiAobWVzc2FnZXMubGVuZ3RoID09PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzTW9yZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFzTW9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkTWVzc2FnZShtZXNzYWdlOiBDaGF0TWVzc2FnZSkge1xyXG4gICAgICAgIGxldCBkZXN0aW5hdGlvbiA9IHRoaXMubWVzc2FnZXM7XHJcbiAgICAgICAgbGV0IGJ1Y2tldCA9IHRoaXMub2xkZXJNZXNzYWdlcztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNWaWV3aW5nTW9yZSkge1xyXG4gICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHRoaXMubmV3TWVzc2FnZXM7XHJcbiAgICAgICAgICAgIGJ1Y2tldCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5uZXdlc3RMYXN0KSB7XHJcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uLnB1c2gobWVzc2FnZSk7XHJcbiAgICAgICAgICAgIGxldCBvdmVyZmxvdyA9IGRlc3RpbmF0aW9uLnNwbGljZSh0aGlzLm1heFZpc2libGVNZXNzYWdlcywgZGVzdGluYXRpb24ubGVuZ3RoKTtcclxuICAgICAgICAgICAgYnVja2V0Py5wdXNoKC4uLm92ZXJmbG93KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkZXN0aW5hdGlvbi51bnNoaWZ0KG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICBsZXQgb3ZlcmZsb3cgPSBkZXN0aW5hdGlvbi5zcGxpY2UodGhpcy5tYXhWaXNpYmxlTWVzc2FnZXMsIGRlc3RpbmF0aW9uLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGJ1Y2tldD8udW5zaGlmdCguLi5vdmVyZmxvdyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYnVja2V0Py5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICB0aGlzLmhhc01vcmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbWVzc2FnZVJlY2VpdmVkKG1lc3NhZ2U6IENoYXRNZXNzYWdlKSB7XHJcbiAgICAgICAgdGhpcy5hZGRNZXNzYWdlKG1lc3NhZ2UpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1Njcm9sbGVkVG9MYXRlc3QoKSlcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNjcm9sbFRvTGF0ZXN0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU2Nyb2xsZWRUb0xhdGVzdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZUNvbnRhaW5lcilcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBlbCA9IHRoaXMubWVzc2FnZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRTY3JvbGwgPSBlbC5zY3JvbGxUb3A7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFRvdGFsID0gZWwuc2Nyb2xsSGVpZ2h0IC0gZWwub2Zmc2V0SGVpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gY3VycmVudFNjcm9sbCA+IGN1cnJlbnRUb3RhbCAtIDEwO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbWVzc2FnZVNlbnQobWVzc2FnZTogQ2hhdE1lc3NhZ2UpIHtcclxuICAgICAgICB0aGlzLmFkZE1lc3NhZ2UobWVzc2FnZSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlQ29udGFpbmVyKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9MYXRlc3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBzY3JvbGxUb0xhdGVzdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZUNvbnRhaW5lcilcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCBlbCA9IHRoaXMubWVzc2FnZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGVsLnNjcm9sbFRvcCA9IGVsLnNjcm9sbEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBtZW50aW9uc01lKG1lc3NhZ2U6IENoYXRNZXNzYWdlKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRVc2VyKVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmIChtZXNzYWdlLm1lc3NhZ2UuaW5jbHVkZXMoYEAke3RoaXMuY3VycmVudFVzZXIudXNlcm5hbWV9YCkpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgYXZhdGFyRm9yVXNlcih1c2VyOiBVc2VyKSB7XHJcbiAgICAgICAgbGV0IHVybCA9IHRoaXMuZ2VuZXJpY0F2YXRhclVybDtcclxuXHJcbiAgICAgICAgaWYgKHVzZXIgJiYgdXNlci5hdmF0YXJVcmwpXHJcbiAgICAgICAgICAgIHVybCA9IHVzZXIuYXZhdGFyVXJsO1xyXG5cclxuICAgICAgICByZXR1cm4gYHVybCgke3VybH0pYDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -4,7 +4,7 @@ import { CommentViewComponent } from './comment-view/comment-view.component';
|
|
|
4
4
|
import { BantaCommentsComponent } from './banta-comments/banta-comments.component';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
6
|
import { FormsModule } from '@angular/forms';
|
|
7
|
-
import { BantaCommonModule } from '../common
|
|
7
|
+
import { BantaCommonModule } from '../common';
|
|
8
8
|
import { LiveCommentComponent } from './live-comment.component';
|
|
9
9
|
import { EmojiModule } from '../emoji';
|
|
10
10
|
import { MatIconModule } from '@angular/material/icon';
|
|
@@ -15,12 +15,16 @@ import { MatFormFieldModule } from '@angular/material/form-field';
|
|
|
15
15
|
import { MatInputModule } from '@angular/material/input';
|
|
16
16
|
import { TextFieldModule } from '@angular/cdk/text-field';
|
|
17
17
|
import { CommentFieldComponent } from './comment-field/comment-field.component';
|
|
18
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
19
|
+
import { CommentSortComponent } from "./comment-sort/comment-sort.component";
|
|
20
|
+
import { MatSelectModule } from "@angular/material/select";
|
|
18
21
|
const COMPONENTS = [
|
|
19
22
|
CommentComponent,
|
|
20
23
|
CommentViewComponent,
|
|
21
24
|
BantaCommentsComponent,
|
|
22
25
|
LiveCommentComponent,
|
|
23
|
-
CommentFieldComponent
|
|
26
|
+
CommentFieldComponent,
|
|
27
|
+
CommentSortComponent
|
|
24
28
|
];
|
|
25
29
|
export class CommentsModule {
|
|
26
30
|
}
|
|
@@ -38,9 +42,11 @@ CommentsModule.decorators = [
|
|
|
38
42
|
MatMenuModule,
|
|
39
43
|
MatProgressSpinnerModule,
|
|
40
44
|
BantaCommonModule,
|
|
41
|
-
EmojiModule
|
|
45
|
+
EmojiModule,
|
|
46
|
+
MatTooltipModule,
|
|
47
|
+
MatSelectModule
|
|
42
48
|
],
|
|
43
49
|
exports: COMPONENTS
|
|
44
50
|
},] }
|
|
45
51
|
];
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IkQ6L0Rldi9hc3Ryb25hdXRsYWJzL2JhbnRhL3BhY2thZ2VzL2Zyb250ZW5kL3Byb2plY3RzL3Nkay9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tbWVudHMvY29tbWVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxNQUFNLFVBQVUsR0FBRztJQUNmLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIsb0JBQW9CO0NBQ3ZCLENBQUM7QUFxQkYsTUFBTSxPQUFPLGNBQWM7OztZQW5CMUIsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRSxVQUFVO2dCQUMxQixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixlQUFlO29CQUNmLFdBQVc7b0JBQ1gsYUFBYTtvQkFDYixrQkFBa0I7b0JBQ2xCLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixhQUFhO29CQUNiLHdCQUF3QjtvQkFDeEIsaUJBQWlCO29CQUNqQixXQUFXO29CQUNYLGdCQUFnQjtvQkFDaEIsZUFBZTtpQkFDaEI7Z0JBQ0MsT0FBTyxFQUFFLFVBQVU7YUFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbWVudFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQtdmlldy9jb21tZW50LXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFudGFDb21tZW50c0NvbXBvbmVudCB9IGZyb20gJy4vYmFudGEtY29tbWVudHMvYmFudGEtY29tbWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJhbnRhQ29tbW9uTW9kdWxlIH0gZnJvbSAnLi4vY29tbW9uJztcclxuaW1wb3J0IHsgTGl2ZUNvbW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2xpdmUtY29tbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbW9qaU1vZHVsZSB9IGZyb20gJy4uL2Vtb2ppJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcclxuaW1wb3J0IHsgQ29tbWVudEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50LWZpZWxkL2NvbW1lbnQtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHtNYXRUb29sdGlwTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHtDb21tZW50U29ydENvbXBvbmVudH0gZnJvbSBcIi4vY29tbWVudC1zb3J0L2NvbW1lbnQtc29ydC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtNYXRTZWxlY3RNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcclxuXHJcbmNvbnN0IENPTVBPTkVOVFMgPSBbXHJcbiAgICBDb21tZW50Q29tcG9uZW50LFxyXG4gICAgQ29tbWVudFZpZXdDb21wb25lbnQsXHJcbiAgICBCYW50YUNvbW1lbnRzQ29tcG9uZW50LFxyXG4gICAgTGl2ZUNvbW1lbnRDb21wb25lbnQsXHJcbiAgICBDb21tZW50RmllbGRDb21wb25lbnQsXHJcbiAgICBDb21tZW50U29ydENvbXBvbmVudFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogQ09NUE9ORU5UUyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUZXh0RmllbGRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBCYW50YUNvbW1vbk1vZHVsZSxcclxuICAgIEVtb2ppTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZVxyXG4gIF0sXHJcbiAgICBleHBvcnRzOiBDT01QT05FTlRTXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tZW50c01vZHVsZSB7XHJcbn1cclxuIl19
|
|
@@ -3,5 +3,6 @@ export * from './comment-view/comment-view.component';
|
|
|
3
3
|
export * from './banta-comments/banta-comments.component';
|
|
4
4
|
export * from './live-comment.component';
|
|
5
5
|
export * from './comment-field/comment-field.component';
|
|
6
|
+
export * from './comment-sort/comment-sort.component';
|
|
6
7
|
export * from './comments.module';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiRDovRGV2L2FzdHJvbmF1dGxhYnMvYmFudGEvcGFja2FnZXMvZnJvbnRlbmQvcHJvamVjdHMvc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21tZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21tZW50LXZpZXcvY29tbWVudC12aWV3LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmFudGEtY29tbWVudHMvYmFudGEtY29tbWVudHMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saXZlLWNvbW1lbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21tZW50LWZpZWxkL2NvbW1lbnQtZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21tZW50LXNvcnQvY29tbWVudC1zb3J0LmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2NvbW1lbnRzLm1vZHVsZSc7Il19
|
|
@@ -4,4 +4,4 @@ export class ChatBackendService {
|
|
|
4
4
|
ChatBackendService.decorators = [
|
|
5
5
|
{ type: Injectable }
|
|
6
6
|
];
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1iYWNrZW5kLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiRDovRGV2L2FzdHJvbmF1dGxhYnMvYmFudGEvcGFja2FnZXMvZnJvbnRlbmQvcHJvamVjdHMvc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21tb24vY2hhdC1iYWNrZW5kLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxNQUFNLE9BQWdCLGtCQUFrQjs7O1lBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENoYXRCYWNrZW5kLCBOb3RpZmljYXRpb24sIENoYXRTb3VyY2UsIENoYXRNZXNzYWdlLCBDaGF0U291cmNlT3B0aW9ucyB9IGZyb20gJ0BiYW50YS9jb21tb24nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDaGF0QmFja2VuZFNlcnZpY2UgaW1wbGVtZW50cyBDaGF0QmFja2VuZCB7XHJcbiAgICBhYnN0cmFjdCBnZXRTb3VyY2VGb3JUb3BpYyh0b3BpY0lkIDogc3RyaW5nLCBvcHRpb25zPzogQ2hhdFNvdXJjZU9wdGlvbnMpIDogUHJvbWlzZTxDaGF0U291cmNlPjtcclxuICAgIGFic3RyYWN0IGdldFNvdXJjZUZvclRocmVhZCh0b3BpY0lkIDogc3RyaW5nLCBtZXNzYWdlSWQgOiBzdHJpbmcsIG9wdGlvbnM/OiBDaGF0U291cmNlT3B0aW9ucykgOiBQcm9taXNlPENoYXRTb3VyY2U+O1xyXG4gICAgYWJzdHJhY3QgcmVmcmVzaE1lc3NhZ2UobWVzc2FnZSA6IENoYXRNZXNzYWdlKTogUHJvbWlzZTxDaGF0TWVzc2FnZT47XHJcbiAgICBhYnN0cmFjdCBnZXRNZXNzYWdlKHRvcGljSWQgOiBzdHJpbmcsIG1lc3NhZ2VJZCA6IHN0cmluZyk6IFByb21pc2U8Q2hhdE1lc3NhZ2U+O1xyXG4gICAgYWJzdHJhY3QgZ2V0U3ViTWVzc2FnZSh0b3BpY0lkIDogc3RyaW5nLCBwYXJlbnRNZXNzYWdlSWQgOiBzdHJpbmcsIG1lc3NhZ2VJZCA6IHN0cmluZyk6IFByb21pc2U8Q2hhdE1lc3NhZ2U+O1xyXG4gICAgYWJzdHJhY3QgdXB2b3RlTWVzc2FnZSh0b3BpY0lkIDogc3RyaW5nLCBtZXNzYWdlSWQgOiBzdHJpbmcsIHN1Ym1lc3NhZ2VJZD8gOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xyXG4gICAgYWJzdHJhY3Qgd2F0Y2hNZXNzYWdlKG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSwgaGFuZGxlciA6IChtZXNzYWdlIDogQ2hhdE1lc3NhZ2UpID0+IHZvaWQpIDogKCkgPT4gdm9pZDtcclxuICAgIGFic3RyYWN0IG1vZGlmeU1lc3NhZ2U/KG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSkgOiBQcm9taXNlPHZvaWQ+O1xyXG4gICAgYWJzdHJhY3QgZ2V0IG5vdGlmaWNhdGlvbnNDaGFuZ2VkKCkgOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbltdPjtcclxuICAgIGFic3RyYWN0IGdldCBuZXdOb3RpZmljYXRpb24oKSA6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uPjtcclxufSJdfQ==
|