@rolatech/angular-comment 17.2.8 → 19.0.0-beta.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/fesm2022/rolatech-angular-comment.mjs +30 -35
- package/fesm2022/rolatech-angular-comment.mjs.map +1 -1
- package/lib/services/comment.service.d.ts +1 -1
- package/package.json +8 -6
- package/themes/_default.scss +1 -1
- package/esm2022/index.mjs +0 -4
- package/esm2022/lib/components/comment-action/comment-action.component.mjs +0 -55
- package/esm2022/lib/components/comment-item/comment-item.component.mjs +0 -108
- package/esm2022/lib/components/comment-replies/comment-replies.component.mjs +0 -41
- package/esm2022/lib/components/comments/comments.component.mjs +0 -54
- package/esm2022/lib/components/comments-header/comments-header.component.mjs +0 -72
- package/esm2022/lib/components/index.mjs +0 -5
- package/esm2022/lib/components/reply-item/reply-item.component.mjs +0 -67
- package/esm2022/lib/interfaces/comment.interface.mjs +0 -6
- package/esm2022/lib/interfaces/index.mjs +0 -2
- package/esm2022/lib/services/comment.service.mjs +0 -206
- package/esm2022/lib/services/index.mjs +0 -2
- package/esm2022/rolatech-angular-comment.mjs +0 -5
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, Injectable, inject } from '@angular/core';
|
|
2
|
-
import { AuthService, AuthUserService } from '@rolatech/angular-auth';
|
|
3
|
-
import { BaseService } from '@rolatech/angular-services';
|
|
4
|
-
import _ from 'lodash';
|
|
5
|
-
import { map, of, switchMap } from 'rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class CommentService extends BaseService {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.authService = inject(AuthService);
|
|
11
|
-
this.authUserService = inject(AuthUserService);
|
|
12
|
-
// onCommentLoading = output<boolean>();
|
|
13
|
-
// onComment = output<boolean>();
|
|
14
|
-
// onCommentReply = output<Reply>();
|
|
15
|
-
this.onCommentLoading = new EventEmitter();
|
|
16
|
-
this.onComment = new EventEmitter();
|
|
17
|
-
this.onCommentReply = new EventEmitter();
|
|
18
|
-
}
|
|
19
|
-
init() {
|
|
20
|
-
this.endpoint = 'comments';
|
|
21
|
-
super.init();
|
|
22
|
-
}
|
|
23
|
-
findComments(options) {
|
|
24
|
-
options = {
|
|
25
|
-
sort: 'createdAt desc',
|
|
26
|
-
};
|
|
27
|
-
return this.http.get(`${this.actionUrl}`, { params: options }).pipe(map((res) => {
|
|
28
|
-
const userIds = _.uniq(_.map(res.data, 'userId')); // [12, 14, 16, 18]
|
|
29
|
-
this.findCommentsUser(userIds);
|
|
30
|
-
return res;
|
|
31
|
-
}));
|
|
32
|
-
}
|
|
33
|
-
findCommentsByItemId(itemId) {
|
|
34
|
-
const options = {
|
|
35
|
-
sort: 'createdAt desc',
|
|
36
|
-
filter: `itemId:${itemId}`,
|
|
37
|
-
};
|
|
38
|
-
return this.http.get(`${this.actionUrl}`, { params: options }).pipe(switchMap((comments) => {
|
|
39
|
-
const userIds = _.uniq(_.map(comments.data, 'userId')); // [12, 14, 16, 18]
|
|
40
|
-
return this.findCommentsUser(userIds).pipe(map((users) => {
|
|
41
|
-
comments.data?.forEach((item) => {
|
|
42
|
-
const matchingUser = _.find(users.data, { id: item.userId });
|
|
43
|
-
item.user = matchingUser;
|
|
44
|
-
});
|
|
45
|
-
return comments;
|
|
46
|
-
}));
|
|
47
|
-
}), switchMap((comments) => {
|
|
48
|
-
const ids = _.uniq(_.map(comments.data, 'id')); // [12, 14, 16, 18]
|
|
49
|
-
return this.authService.introspect().pipe(switchMap((res) => {
|
|
50
|
-
if (res.authenticated) {
|
|
51
|
-
return this.findMyCommentsThumbs(ids).pipe(map((thumbs) => {
|
|
52
|
-
comments.data?.forEach((item) => {
|
|
53
|
-
const matchingComment = _.find(thumbs.data, (obj) => _.get(obj, `comment.id`) === item.id);
|
|
54
|
-
item.like = matchingComment?.status === 'UP';
|
|
55
|
-
item.dislike = matchingComment?.status === 'DOWN';
|
|
56
|
-
});
|
|
57
|
-
return comments;
|
|
58
|
-
}));
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
return of(comments);
|
|
62
|
-
}
|
|
63
|
-
}));
|
|
64
|
-
}));
|
|
65
|
-
}
|
|
66
|
-
createComment(data) {
|
|
67
|
-
return this.http
|
|
68
|
-
.post(`${this.actionUrl}`, data, {
|
|
69
|
-
withCredentials: true,
|
|
70
|
-
})
|
|
71
|
-
.pipe(map((res) => {
|
|
72
|
-
res.data.repliesCount = 0;
|
|
73
|
-
this.getUserInfo(res.data);
|
|
74
|
-
return res.data;
|
|
75
|
-
}));
|
|
76
|
-
}
|
|
77
|
-
countCommnentsByItemId(itemId) {
|
|
78
|
-
return this.http.get(`${this.actionUrl}/count/by`, { params: { itemId } });
|
|
79
|
-
}
|
|
80
|
-
countRepliesByCommentId(commentId) {
|
|
81
|
-
return this.http.get(`${this.actionUrl}/replies/count/by`, { params: { commentId } });
|
|
82
|
-
}
|
|
83
|
-
reply(id, data) {
|
|
84
|
-
return this.http
|
|
85
|
-
.post(`${this.actionUrl}/${id}/replies`, data, {
|
|
86
|
-
withCredentials: true,
|
|
87
|
-
})
|
|
88
|
-
.pipe(map((res) => {
|
|
89
|
-
this.getReplyUserInfo(res.data);
|
|
90
|
-
return res.data;
|
|
91
|
-
}));
|
|
92
|
-
}
|
|
93
|
-
findRepliesByCommentId(commentId) {
|
|
94
|
-
return this.http.get(`${this.actionUrl}/${commentId}/replies`).pipe(switchMap((replies) => {
|
|
95
|
-
const userIds = _.uniq(_.map(replies.data, 'senderId')); // [12, 14, 16, 18]
|
|
96
|
-
return this.findRepliesUser(userIds).pipe(map((users) => {
|
|
97
|
-
replies.data?.forEach((item) => {
|
|
98
|
-
const matchingUser = _.find(users.data, { id: item.senderId });
|
|
99
|
-
item.user = matchingUser;
|
|
100
|
-
});
|
|
101
|
-
return replies;
|
|
102
|
-
}));
|
|
103
|
-
}), switchMap((replies) => {
|
|
104
|
-
const ids = _.uniq(_.map(replies.data, 'id'));
|
|
105
|
-
return this.authService.introspect().pipe(switchMap((res) => {
|
|
106
|
-
if (res.authenticated) {
|
|
107
|
-
return this.findMyRepliesThumbs(ids).pipe(map((thumbs) => {
|
|
108
|
-
replies.data?.forEach((reply) => {
|
|
109
|
-
const matchingReply = _.find(thumbs.data, (obj) => _.get(obj, `reply.id`) === reply.id);
|
|
110
|
-
reply.like = matchingReply?.status === 'UP';
|
|
111
|
-
reply.dislike = matchingReply?.status === 'DOWN';
|
|
112
|
-
});
|
|
113
|
-
return replies;
|
|
114
|
-
}));
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
return of(replies);
|
|
118
|
-
}
|
|
119
|
-
}));
|
|
120
|
-
}));
|
|
121
|
-
}
|
|
122
|
-
commentThumbsUp(commentId) {
|
|
123
|
-
return this.http.post(`${this.actionUrl}/${commentId}/thumbs/up`, {}, {
|
|
124
|
-
withCredentials: true,
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
commentThumbsDown(commentId) {
|
|
128
|
-
return this.http.post(`${this.actionUrl}/${commentId}/thumbs/down`, {}, {
|
|
129
|
-
withCredentials: true,
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
deleteCommentThumbsUp(commentId) {
|
|
133
|
-
return this.http.delete(`${this.actionUrl}/${commentId}/thumbs/up`, {
|
|
134
|
-
withCredentials: true,
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
deleteCommentThumbsDown(commentId) {
|
|
138
|
-
return this.http.delete(`${this.actionUrl}/${commentId}/thumbs/down`, {
|
|
139
|
-
withCredentials: true,
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
replyThumbsUp(replyId) {
|
|
143
|
-
return this.http.post(`${this.actionUrl}/replies/${replyId}/thumbs/up`, {}, {
|
|
144
|
-
withCredentials: true,
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
replyThumbsDown(replyId) {
|
|
148
|
-
return this.http.post(`${this.actionUrl}/replies/${replyId}/thumbs/down`, {}, {
|
|
149
|
-
withCredentials: true,
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
deleteReplyThumbsUp(replyId) {
|
|
153
|
-
return this.http.delete(`${this.actionUrl}/${replyId}/thumbs/up`, {
|
|
154
|
-
withCredentials: true,
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
deleteReplyThumbsDown(replyId) {
|
|
158
|
-
return this.http.delete(`${this.actionUrl}/${replyId}/thumbs/down`, {
|
|
159
|
-
withCredentials: true,
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
getReplyUserInfo(reply) {
|
|
163
|
-
this.authUserService.getPublicUserInfo(reply.senderId).subscribe({
|
|
164
|
-
next: (res) => {
|
|
165
|
-
reply.user = res;
|
|
166
|
-
},
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
getUserInfo(comment) {
|
|
170
|
-
this.authUserService.getPublicUserInfo(comment.userId).subscribe({
|
|
171
|
-
next: (res) => {
|
|
172
|
-
comment.user = res;
|
|
173
|
-
},
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
findRepliesUser(ids) {
|
|
177
|
-
return this.authUserService.findPublicInfoByIds(ids);
|
|
178
|
-
}
|
|
179
|
-
findCommentsUser(ids) {
|
|
180
|
-
return this.authUserService.findPublicInfoByIds(ids);
|
|
181
|
-
}
|
|
182
|
-
findMyCommentsThumbs(ids) {
|
|
183
|
-
const params = { ids: ids.join(',') };
|
|
184
|
-
return this.http.get(`${this.actionUrl}/thumbs/me`, {
|
|
185
|
-
params: params,
|
|
186
|
-
withCredentials: true,
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
findMyRepliesThumbs(ids) {
|
|
190
|
-
const params = { ids: ids.join(',') };
|
|
191
|
-
return this.http.get(`${this.actionUrl}/replies/thumbs/me`, {
|
|
192
|
-
params: params,
|
|
193
|
-
withCredentials: true,
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CommentService, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
197
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: CommentService, usesInheritance: true, ngImport: i0 }); }
|
|
198
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CommentService, providedIn: 'root' }); }
|
|
199
|
-
}
|
|
200
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CommentService, decorators: [{
|
|
201
|
-
type: Injectable,
|
|
202
|
-
args: [{ providedIn: 'root' }]
|
|
203
|
-
}, {
|
|
204
|
-
type: Directive
|
|
205
|
-
}] });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvbW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9jb21tZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFjLEdBQUcsRUFBWSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtoRSxNQUFNLE9BQU8sY0FBZSxTQUFRLFdBQVc7SUFGL0M7O1FBR0UsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsd0NBQXdDO1FBQ3hDLGlDQUFpQztRQUNqQyxvQ0FBb0M7UUFDcEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMvQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUN4QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7S0E2TjVDO0lBM05VLElBQUk7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsWUFBWSxDQUFDLE9BQVk7UUFDdkIsT0FBTyxHQUFHO1lBQ1IsSUFBSSxFQUFFLGdCQUFnQjtTQUN2QixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FB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LEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZLEVBQUU7WUFDbEQsTUFBTSxFQUFFLE1BQU07WUFDZCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsR0FBa0I7UUFDcEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxvQkFBb0IsRUFBRTtZQUMxRCxNQUFNLEVBQUUsTUFBTTtZQUNkLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBcE9VLGNBQWM7a0dBQWQsY0FBYztrSEFBZCxjQUFjLGNBRkQsTUFBTTs7MkZBRW5CLGNBQWM7a0JBRjFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztrQkFDakMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBpbmplY3QsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCBtZXJnZU1hcCwgb2YsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tbWVudCwgUmVwbHkgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIENvbW1lbnRTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICAvLyBvbkNvbW1lbnRMb2FkaW5nID0gb3V0cHV0PGJvb2xlYW4+KCk7XG4gIC8vIG9uQ29tbWVudCA9IG91dHB1dDxib29sZWFuPigpO1xuICAvLyBvbkNvbW1lbnRSZXBseSA9IG91dHB1dDxSZXBseT4oKTtcbiAgb25Db21tZW50TG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgb25Db21tZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBvbkNvbW1lbnRSZXBseSA9IG5ldyBFdmVudEVtaXR0ZXI8UmVwbHk+KCk7XG5cbiAgb3ZlcnJpZGUgaW5pdCgpIHtcbiAgICB0aGlzLmVuZHBvaW50ID0gJ2NvbW1lbnRzJztcbiAgICBzdXBlci5pbml0KCk7XG4gIH1cbiAgZmluZENvbW1lbnRzKG9wdGlvbnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIHNvcnQ6ICdjcmVhdGVkQXQgZGVzYycsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH1gLCB7IHBhcmFtczogb3B0aW9ucyB9KS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCB1c2VySWRzID0gXy51bmlxKF8ubWFwKHJlcy5kYXRhLCAndXNlcklkJykpOyAvLyBbMTIsIDE0LCAxNiwgMThdXG4gICAgICAgIHRoaXMuZmluZENvbW1lbnRzVXNlcih1c2VySWRzKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbiAgZmluZENvbW1lbnRzQnlJdGVtSWQoaXRlbUlkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzb3J0OiAnY3JlYXRlZEF0IGRlc2MnLFxuICAgICAgZmlsdGVyOiBgaXRlbUlkOiR7aXRlbUlkfWAsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH1gLCB7IHBhcmFtczogb3B0aW9ucyB9KS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChjb21tZW50czogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXJJZHMgPSBfLnVuaXEoXy5tYXAoY29tbWVudHMuZGF0YSwgJ3VzZXJJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICByZXR1cm4gdGhpcy5maW5kQ29tbWVudHNVc2VyKHVzZXJJZHMpLnBpcGUoXG4gICAgICAgICAgbWFwKCh1c2VyczogYW55KSA9PiB7XG4gICAgICAgICAgICBjb21tZW50cy5kYXRhPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nVXNlciA9IF8uZmluZCh1c2Vycy5kYXRhLCB7IGlkOiBpdGVtLnVzZXJJZCB9KTtcbiAgICAgICAgICAgICAgaXRlbS51c2VyID0gbWF0Y2hpbmdVc2VyO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gY29tbWVudHM7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgoY29tbWVudHM6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBpZHMgPSBfLnVuaXEoXy5tYXAoY29tbWVudHMuZGF0YSwgJ2lkJykpOyAvLyBbMTIsIDE0LCAxNiwgMThdXG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmludHJvc3BlY3QoKS5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzLmF1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmluZE15Q29tbWVudHNUaHVtYnMoaWRzKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgodGh1bWJzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbW1lbnRzLmRhdGE/LmZvckVhY2goKGl0ZW06IENvbW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdDb21tZW50ID0gXy5maW5kKHRodW1icy5kYXRhLCAob2JqKSA9PiBfLmdldChvYmosIGBjb21tZW50LmlkYCkgPT09IGl0ZW0uaWQpO1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmxpa2UgPSBtYXRjaGluZ0NvbW1lbnQ/LnN0YXR1cyA9PT0gJ1VQJztcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5kaXNsaWtlID0gbWF0Y2hpbmdDb21tZW50Py5zdGF0dXMgPT09ICdET1dOJztcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbW1lbnRzO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKGNvbW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBjcmVhdGVDb21tZW50KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoYCR7dGhpcy5hY3Rpb25Vcmx9YCwgZGF0YSwge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICByZXMuZGF0YS5yZXBsaWVzQ291bnQgPSAwO1xuICAgICAgICAgIHRoaXMuZ2V0VXNlckluZm8ocmVzLmRhdGEpO1xuICAgICAgICAgIHJldHVybiByZXMuZGF0YTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG4gIGNvdW50Q29tbW5lbnRzQnlJdGVtSWQoaXRlbUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS9jb3VudC9ieWAsIHsgcGFyYW1zOiB7IGl0ZW1JZCB9IH0pO1xuICB9XG4gIGNvdW50UmVwbGllc0J5Q29tbWVudElkKGNvbW1lbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vcmVwbGllcy9jb3VudC9ieWAsIHsgcGFyYW1zOiB7IGNvbW1lbnRJZCB9IH0pO1xuICB9XG5cbiAgcmVwbHkoaWQ6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChgJHt0aGlzLmFjdGlvblVybH0vJHtpZH0vcmVwbGllc2AsIGRhdGEsIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5nZXRSZXBseVVzZXJJbmZvKHJlcy5kYXRhKTtcbiAgICAgICAgICByZXR1cm4gcmVzLmRhdGE7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuICBmaW5kUmVwbGllc0J5Q29tbWVudElkKGNvbW1lbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vJHtjb21tZW50SWR9L3JlcGxpZXNgKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChyZXBsaWVzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdXNlcklkcyA9IF8udW5pcShfLm1hcChyZXBsaWVzLmRhdGEsICdzZW5kZXJJZCcpKTsgLy8gWzEyLCAxNCwgMTYsIDE4XVxuICAgICAgICByZXR1cm4gdGhpcy5maW5kUmVwbGllc1VzZXIodXNlcklkcykucGlwZShcbiAgICAgICAgICBtYXAoKHVzZXJzKSA9PiB7XG4gICAgICAgICAgICByZXBsaWVzLmRhdGE/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdVc2VyID0gXy5maW5kKHVzZXJzLmRhdGEsIHsgaWQ6IGl0ZW0uc2VuZGVySWQgfSk7XG4gICAgICAgICAgICAgIGl0ZW0udXNlciA9IG1hdGNoaW5nVXNlcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlcGxpZXM7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgocmVwbGllcykgPT4ge1xuICAgICAgICBjb25zdCBpZHMgPSBfLnVuaXEoXy5tYXAocmVwbGllcy5kYXRhLCAnaWQnKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmludHJvc3BlY3QoKS5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzLmF1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmluZE15UmVwbGllc1RodW1icyhpZHMpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh0aHVtYnMpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJlcGxpZXMuZGF0YT8uZm9yRWFjaCgocmVwbHk6IFJlcGx5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nUmVwbHkgPSBfLmZpbmQodGh1bWJzLmRhdGEsIChvYmopID0+IF8uZ2V0KG9iaiwgYHJlcGx5LmlkYCkgPT09IHJlcGx5LmlkKTtcbiAgICAgICAgICAgICAgICAgICAgcmVwbHkubGlrZSA9IG1hdGNoaW5nUmVwbHk/LnN0YXR1cyA9PT0gJ1VQJztcbiAgICAgICAgICAgICAgICAgICAgcmVwbHkuZGlzbGlrZSA9IG1hdGNoaW5nUmVwbHk/LnN0YXR1cyA9PT0gJ0RPV04nO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmVwbGllcztcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBvZihyZXBsaWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbiAgY29tbWVudFRodW1ic1VwKGNvbW1lbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtjb21tZW50SWR9L3RodW1icy91cGAsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIGNvbW1lbnRUaHVtYnNEb3duKGNvbW1lbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vJHtjb21tZW50SWR9L3RodW1icy9kb3duYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbiAgZGVsZXRlQ29tbWVudFRodW1ic1VwKGNvbW1lbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmFjdGlvblVybH0vJHtjb21tZW50SWR9L3RodW1icy91cGAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBkZWxldGVDb21tZW50VGh1bWJzRG93bihjb21tZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7Y29tbWVudElkfS90aHVtYnMvZG93bmAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICByZXBseVRodW1ic1VwKHJlcGx5SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgYCR7dGhpcy5hY3Rpb25Vcmx9L3JlcGxpZXMvJHtyZXBseUlkfS90aHVtYnMvdXBgLFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICByZXBseVRodW1ic0Rvd24ocmVwbHlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICBgJHt0aGlzLmFjdGlvblVybH0vcmVwbGllcy8ke3JlcGx5SWR9L3RodW1icy9kb3duYCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBkZWxldGVSZXBseVRodW1ic1VwKHJlcGx5SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hY3Rpb25Vcmx9LyR7cmVwbHlJZH0vdGh1bWJzL3VwYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZVJlcGx5VGh1bWJzRG93bihyZXBseUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuYWN0aW9uVXJsfS8ke3JlcGx5SWR9L3RodW1icy9kb3duYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0UmVwbHlVc2VySW5mbyhyZXBseTogYW55KSB7XG4gICAgdGhpcy5hdXRoVXNlclNlcnZpY2UuZ2V0UHVibGljVXNlckluZm8ocmVwbHkuc2VuZGVySWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHJlcGx5LnVzZXIgPSByZXM7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldFVzZXJJbmZvKGNvbW1lbnQ6IGFueSkge1xuICAgIHRoaXMuYXV0aFVzZXJTZXJ2aWNlLmdldFB1YmxpY1VzZXJJbmZvKGNvbW1lbnQudXNlcklkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICBjb21tZW50LnVzZXIgPSByZXM7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmRSZXBsaWVzVXNlcihpZHM6IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmF1dGhVc2VyU2VydmljZS5maW5kUHVibGljSW5mb0J5SWRzKGlkcyk7XG4gIH1cbiAgZmluZENvbW1lbnRzVXNlcihpZHM6IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmF1dGhVc2VyU2VydmljZS5maW5kUHVibGljSW5mb0J5SWRzKGlkcyk7XG4gIH1cbiAgZmluZE15Q29tbWVudHNUaHVtYnMoaWRzOiBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7IGlkczogaWRzLmpvaW4oJywnKSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYWN0aW9uVXJsfS90aHVtYnMvbWVgLCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuICBmaW5kTXlSZXBsaWVzVGh1bWJzKGlkczogQXJyYXk8c3RyaW5nPik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgcGFyYW1zID0geyBpZHM6IGlkcy5qb2luKCcsJykgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFjdGlvblVybH0vcmVwbGllcy90aHVtYnMvbWVgLCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { CommentService } from './comment.service';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tbWVudC9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9jb21tZW50LnNlcnZpY2UnO1xuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sYXRlY2gtYW5ndWxhci1jb21tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvbW1lbnQvc3JjL3JvbGF0ZWNoLWFuZ3VsYXItY29tbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|