@rolatech/angular-comment 17.2.9 → 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.
@@ -1,66 +0,0 @@
1
- import { Component, effect, inject, input, output } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { CommentActionComponent } from '../comment-action/comment-action.component';
6
- import { CommentService } from '../../services';
7
- import { TimePipe } from '@rolatech/angular-common';
8
- import { MatMenuModule } from '@angular/material/menu';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common";
11
- import * as i2 from "@angular/material/icon";
12
- import * as i3 from "@angular/material/menu";
13
- export class ReplyItemComponent {
14
- constructor() {
15
- this.commentService = inject(CommentService);
16
- this.commentId = input.required();
17
- this.item = input.required();
18
- this.replied = output();
19
- this.show = false;
20
- effect(() => {
21
- this.reply = this.item();
22
- });
23
- }
24
- onReply(content) {
25
- const data = {
26
- replyId: this.reply.id,
27
- content,
28
- };
29
- this.commentService.reply(this.commentId(), data).subscribe({
30
- next: (res) => {
31
- this.commentService.onCommentLoading.emit(false);
32
- this.replied.emit(res);
33
- },
34
- error: (error) => {
35
- this.commentService.onCommentLoading.emit(false);
36
- },
37
- });
38
- }
39
- onThumbsUp() {
40
- this.commentService.replyThumbsUp(this.reply.id).subscribe({
41
- next: (res) => {
42
- this.reply.thumbsUpCount = res.data.thumbsUpCount;
43
- this.reply.thumbsDownCount = res.data.thumbsDownCount;
44
- this.reply.like = true;
45
- this.reply.dislike = false;
46
- },
47
- });
48
- }
49
- onThumbsDown() {
50
- this.commentService.replyThumbsDown(this.reply.id).subscribe({
51
- next: (res) => {
52
- this.reply.thumbsUpCount = res.data.thumbsUpCount;
53
- this.reply.thumbsDownCount = res.data.thumbsDownCount;
54
- this.reply.like = false;
55
- this.reply.dislike = true;
56
- },
57
- });
58
- }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ReplyItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ReplyItemComponent, isStandalone: true, selector: "rolatech-reply-item", inputs: { commentId: { classPropertyName: "commentId", publicName: "commentId", isSignal: true, isRequired: true, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { replied: "replied" }, ngImport: i0, template: "<div class=\"block w-full\">\n @if (reply) {\n <div class=\"flex group\">\n <div class=\"bg-[--rt-brand-color] min-w-[28px] min-h-[28px] h-fit mr-3 rounded-full\">\n @if (reply.user && reply.user.avatar) {\n <img class=\"w-7 h-7 rounded-full\" [src]=\"reply.user.avatar\" />\n }\n </div>\n <div class=\"flex flex-col w-full\">\n <a class=\"mb-0.5\">\n @if (reply.user) {\n <span class=\"text-md font-semibold mr-1\">&#64;{{ reply.user.username }}</span>\n }\n <span class=\"text-sm opacity-70\">{{ reply.createdAt | time }}</span>\n </a>\n <div [innerText]=\"reply.content\"></div>\n <rolatech-comment-action\n (reply)=\"onReply($event)\"\n [data]=\"reply\"\n (thumbsUp)=\"onThumbsUp()\"\n (thumbsDown)=\"onThumbsDown()\"\n ></rolatech-comment-action>\n </div>\n <div class=\"min-w-10\">\n <button\n class=\"hover:bg-[--rt-10-percent-layer] w-9 h-9 flex items-center justify-center rounded-full group-hover:visible\"\n [ngClass]=\"memnu.menuOpen ? 'visible' : 'invisible'\"\n [matMenuTriggerFor]=\"actionMenu\"\n #memnu=\"matMenuTrigger\"\n >\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n </div>\n }\n</div>\n<mat-menu #actionMenu=\"matMenu\">\n <button mat-menu-item>\n <mat-icon>flag</mat-icon>\n <span>\u4E3E\u62A5</span>\n </button>\n</mat-menu>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: CommentActionComponent, selector: "rolatech-comment-action", inputs: ["placeholder", "data"], outputs: ["reply", "thumbsUp", "thumbsDown"] }, { kind: "pipe", type: TimePipe, name: "time" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ReplyItemComponent, decorators: [{
63
- type: Component,
64
- args: [{ selector: 'rolatech-reply-item', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, CommentActionComponent, TimePipe, MatMenuModule], template: "<div class=\"block w-full\">\n @if (reply) {\n <div class=\"flex group\">\n <div class=\"bg-[--rt-brand-color] min-w-[28px] min-h-[28px] h-fit mr-3 rounded-full\">\n @if (reply.user && reply.user.avatar) {\n <img class=\"w-7 h-7 rounded-full\" [src]=\"reply.user.avatar\" />\n }\n </div>\n <div class=\"flex flex-col w-full\">\n <a class=\"mb-0.5\">\n @if (reply.user) {\n <span class=\"text-md font-semibold mr-1\">&#64;{{ reply.user.username }}</span>\n }\n <span class=\"text-sm opacity-70\">{{ reply.createdAt | time }}</span>\n </a>\n <div [innerText]=\"reply.content\"></div>\n <rolatech-comment-action\n (reply)=\"onReply($event)\"\n [data]=\"reply\"\n (thumbsUp)=\"onThumbsUp()\"\n (thumbsDown)=\"onThumbsDown()\"\n ></rolatech-comment-action>\n </div>\n <div class=\"min-w-10\">\n <button\n class=\"hover:bg-[--rt-10-percent-layer] w-9 h-9 flex items-center justify-center rounded-full group-hover:visible\"\n [ngClass]=\"memnu.menuOpen ? 'visible' : 'invisible'\"\n [matMenuTriggerFor]=\"actionMenu\"\n #memnu=\"matMenuTrigger\"\n >\n <mat-icon>more_vert</mat-icon>\n </button>\n </div>\n </div>\n }\n</div>\n<mat-menu #actionMenu=\"matMenu\">\n <button mat-menu-item>\n <mat-icon>flag</mat-icon>\n <span>\u4E3E\u62A5</span>\n </button>\n</mat-menu>\n" }]
65
- }], ctorParameters: () => [] });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbHktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tbWVudC9zcmMvbGliL2NvbXBvbmVudHMvcmVwbHktaXRlbS9yZXBseS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21tZW50L3NyYy9saWIvY29tcG9uZW50cy9yZXBseS1pdGVtL3JlcGx5LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBUXZELE1BQU0sT0FBTyxrQkFBa0I7SUFNN0I7UUFMQSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxjQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ3JDLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFTLENBQUM7UUFDL0IsWUFBTyxHQUFHLE1BQU0sRUFBUyxDQUFDO1FBUTFCLFNBQUksR0FBRyxLQUFLLENBQUM7UUFMWCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsT0FBTyxDQUFDLE9BQWU7UUFDckIsTUFBTSxJQUFJLEdBQUc7WUFDWCxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE9BQU87U0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxRCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pELElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDN0IsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDM0QsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUM1QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EvQ1Usa0JBQWtCO2tHQUFsQixrQkFBa0IsbVhDaEIvQixtK0NBMENBLHlERDlCWSxZQUFZLDRIQUFFLGVBQWUsOEJBQUUsYUFBYSxvTEFBRSxzQkFBc0IsOElBQUUsUUFBUSw0Q0FBRSxhQUFhOzsyRkFJNUYsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlcGx5IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQ29tbWVudEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1lbnQtYWN0aW9uL2NvbW1lbnQtYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFRpbWVQaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXJlcGx5LWl0ZW0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIENvbW1lbnRBY3Rpb25Db21wb25lbnQsIFRpbWVQaXBlLCBNYXRNZW51TW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGx5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcmVwbHktaXRlbS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFJlcGx5SXRlbUNvbXBvbmVudCB7XG4gIGNvbW1lbnRTZXJ2aWNlID0gaW5qZWN0KENvbW1lbnRTZXJ2aWNlKTtcbiAgY29tbWVudElkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBpdGVtID0gaW5wdXQucmVxdWlyZWQ8UmVwbHk+KCk7XG4gIHJlcGxpZWQgPSBvdXRwdXQ8UmVwbHk+KCk7XG4gIHJlcGx5ITogUmVwbHk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLnJlcGx5ID0gdGhpcy5pdGVtKCk7XG4gICAgfSk7XG4gIH1cblxuICBzaG93ID0gZmFsc2U7XG4gIG9uUmVwbHkoY29udGVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHJlcGx5SWQ6IHRoaXMucmVwbHkuaWQsXG4gICAgICBjb250ZW50LFxuICAgIH07XG4gICAgdGhpcy5jb21tZW50U2VydmljZS5yZXBseSh0aGlzLmNvbW1lbnRJZCgpLCBkYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLm9uQ29tbWVudExvYWRpbmcuZW1pdChmYWxzZSk7XG4gICAgICAgIHRoaXMucmVwbGllZC5lbWl0KHJlcyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLm9uQ29tbWVudExvYWRpbmcuZW1pdChmYWxzZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uVGh1bWJzVXAoKSB7XG4gICAgdGhpcy5jb21tZW50U2VydmljZS5yZXBseVRodW1ic1VwKHRoaXMucmVwbHkuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMucmVwbHkudGh1bWJzVXBDb3VudCA9IHJlcy5kYXRhLnRodW1ic1VwQ291bnQ7XG4gICAgICAgIHRoaXMucmVwbHkudGh1bWJzRG93bkNvdW50ID0gcmVzLmRhdGEudGh1bWJzRG93bkNvdW50O1xuICAgICAgICB0aGlzLnJlcGx5Lmxpa2UgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlcGx5LmRpc2xpa2UgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25UaHVtYnNEb3duKCkge1xuICAgIHRoaXMuY29tbWVudFNlcnZpY2UucmVwbHlUaHVtYnNEb3duKHRoaXMucmVwbHkuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMucmVwbHkudGh1bWJzVXBDb3VudCA9IHJlcy5kYXRhLnRodW1ic1VwQ291bnQ7XG4gICAgICAgIHRoaXMucmVwbHkudGh1bWJzRG93bkNvdW50ID0gcmVzLmRhdGEudGh1bWJzRG93bkNvdW50O1xuICAgICAgICB0aGlzLnJlcGx5Lmxpa2UgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZXBseS5kaXNsaWtlID0gdHJ1ZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJibG9jayB3LWZ1bGxcIj5cbiAgQGlmIChyZXBseSkge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdyb3VwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYmctWy0tcnQtYnJhbmQtY29sb3JdIG1pbi13LVsyOHB4XSBtaW4taC1bMjhweF0gaC1maXQgbXItMyByb3VuZGVkLWZ1bGxcIj5cbiAgICAgICAgQGlmIChyZXBseS51c2VyICYmIHJlcGx5LnVzZXIuYXZhdGFyKSB7XG4gICAgICAgICAgPGltZyBjbGFzcz1cInctNyBoLTcgcm91bmRlZC1mdWxsXCIgW3NyY109XCJyZXBseS51c2VyLmF2YXRhclwiIC8+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy1mdWxsXCI+XG4gICAgICAgIDxhIGNsYXNzPVwibWItMC41XCI+XG4gICAgICAgICAgQGlmIChyZXBseS51c2VyKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbWQgZm9udC1zZW1pYm9sZCBtci0xXCI+JiM2NDt7eyByZXBseS51c2VyLnVzZXJuYW1lIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gb3BhY2l0eS03MFwiPnt7IHJlcGx5LmNyZWF0ZWRBdCB8IHRpbWUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGRpdiBbaW5uZXJUZXh0XT1cInJlcGx5LmNvbnRlbnRcIj48L2Rpdj5cbiAgICAgICAgPHJvbGF0ZWNoLWNvbW1lbnQtYWN0aW9uXG4gICAgICAgICAgKHJlcGx5KT1cIm9uUmVwbHkoJGV2ZW50KVwiXG4gICAgICAgICAgW2RhdGFdPVwicmVwbHlcIlxuICAgICAgICAgICh0aHVtYnNVcCk9XCJvblRodW1ic1VwKClcIlxuICAgICAgICAgICh0aHVtYnNEb3duKT1cIm9uVGh1bWJzRG93bigpXCJcbiAgICAgICAgPjwvcm9sYXRlY2gtY29tbWVudC1hY3Rpb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0xMFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJob3ZlcjpiZy1bLS1ydC0xMC1wZXJjZW50LWxheWVyXSB3LTkgaC05IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBncm91cC1ob3Zlcjp2aXNpYmxlXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJtZW1udS5tZW51T3BlbiA/ICd2aXNpYmxlJyA6ICdpbnZpc2libGUnXCJcbiAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYWN0aW9uTWVudVwiXG4gICAgICAgICAgI21lbW51PVwibWF0TWVudVRyaWdnZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuPG1hdC1tZW51ICNhY3Rpb25NZW51PVwibWF0TWVudVwiPlxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+XG4gICAgPG1hdC1pY29uPmZsYWc8L21hdC1pY29uPlxuICAgIDxzcGFuPuS4vuaKpTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L21hdC1tZW51PlxuIl19
@@ -1,6 +0,0 @@
1
- export var ThumbStatus;
2
- (function (ThumbStatus) {
3
- ThumbStatus[ThumbStatus["UP"] = 'Like'] = "UP";
4
- ThumbStatus[ThumbStatus["DOWN"] = 'Dislike'] = "DOWN";
5
- })(ThumbStatus || (ThumbStatus = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tbWVudC9zcmMvbGliL2ludGVyZmFjZXMvY29tbWVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUNBLE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsZ0NBQVUsTUFBTSxRQUFBLENBQUE7SUFDaEIsa0NBQVksU0FBUyxVQUFBLENBQUE7QUFDdkIsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDb21tZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgaXRlbUlkOiBzdHJpbmc7XG4gIHJlcGxpZXM6IFJlcGx5W107XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1c2VyOiBDb21tZW50VXNlcjtcbiAgcmVwbGllc0NvdW50OiBudW1iZXI7XG4gIHRodW1ic1VwQ291bnQ6IG51bWJlcjtcbiAgdGh1bWJzRG93bkNvdW50OiBudW1iZXI7XG4gIGxpa2U6IGJvb2xlYW47XG4gIGRpc2xpa2U6IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIFJlcGx5IHtcbiAgaWQ6IHN0cmluZztcbiAgY29tbWVudElkOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgc2VuZGVySWQ6IHN0cmluZztcbiAgcmVwbHlJZD86IHN0cmluZztcbiAgcmVjaXBpZW50SWQ6IHN0cmluZztcbiAgcmVwbGllcz86IFJlcGx5W107XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1c2VyOiBDb21tZW50VXNlcjtcbiAgdGh1bWJzVXBDb3VudDogbnVtYmVyO1xuICB0aHVtYnNEb3duQ291bnQ6IG51bWJlcjtcbiAgbGlrZTogYm9vbGVhbjtcbiAgZGlzbGlrZTogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWVudFVzZXIge1xuICBpZDogc3RyaW5nO1xuICBhdmF0YXI/OiBzdHJpbmc7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFRodW1iIHtcbiAgaWQ6IHN0cmluZztcbiAgc3RhdHVzOiBUaHVtYlN0YXR1cyB8IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG59XG5leHBvcnQgZW51bSBUaHVtYlN0YXR1cyB7XG4gIFVQID0gPGFueT4nTGlrZScsXG4gIERPV04gPSA8YW55PidEaXNsaWtlJyxcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tbWVudC9zcmMvbGliL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvbW1lbnQsIFJlcGx5LCBDb21tZW50VXNlciB9IGZyb20gJy4vY29tbWVudC5pbnRlcmZhY2UnO1xuIl19
@@ -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.2.0", ngImport: i0, type: CommentService, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
197
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: CommentService, usesInheritance: true, ngImport: i0 }); }
198
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CommentService, providedIn: 'root' }); }
199
- }
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", 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==