@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.
@@ -1,108 +0,0 @@
1
- import { Component, effect, inject, input } 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 { MatInputModule } from '@angular/material/input';
6
- import { MatFormFieldModule } from '@angular/material/form-field';
7
- import { FormsModule } from '@angular/forms';
8
- import { CommentRepliesComponent } from '../comment-replies/comment-replies.component';
9
- import { CommentActionComponent } from '../comment-action/comment-action.component';
10
- import { CommentService } from '../../services';
11
- import { TimePipe } from '@rolatech/angular-common';
12
- import { MatMenuModule } from '@angular/material/menu';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/common";
15
- import * as i2 from "@angular/material/icon";
16
- import * as i3 from "@angular/material/menu";
17
- export class CommentItemComponent {
18
- constructor() {
19
- this.commentService = inject(CommentService);
20
- this.item = input.required();
21
- this.show = false;
22
- this.loading = false;
23
- effect(() => {
24
- this.comment = this.item();
25
- });
26
- }
27
- ngOnInit() {
28
- // this.countRepliesByCommentId(this.comment.id!);
29
- }
30
- onFocus(event) {
31
- this.show = true;
32
- }
33
- onCommentReply(content) {
34
- const data = {
35
- content,
36
- };
37
- const id = this.comment.id;
38
- this.commentService.reply(id, data).subscribe({
39
- next: (res) => {
40
- this.comment.repliesCount++;
41
- this.comment.replies = this.comment.replies ? this.comment.replies : [];
42
- this.comment.replies.push(res);
43
- this.commentService.onCommentLoading.emit(false);
44
- this.commentService.onCommentReply.emit(res);
45
- },
46
- error: (error) => {
47
- this.commentService.onCommentLoading.emit(false);
48
- },
49
- });
50
- }
51
- countRepliesByCommentId(commentId) {
52
- this.commentService.countRepliesByCommentId(commentId).subscribe({
53
- next: (res) => {
54
- this.comment.repliesCount = res.data;
55
- },
56
- error: (error) => { },
57
- });
58
- }
59
- onFetchReplies(commentId) {
60
- this.loading = true;
61
- this.commentService.findRepliesByCommentId(commentId).subscribe({
62
- next: (res) => {
63
- this.comment.replies = res.data;
64
- },
65
- error: (error) => {
66
- this.loading = false;
67
- },
68
- });
69
- }
70
- onThumbsUp() {
71
- this.commentService.commentThumbsUp(this.comment.id).subscribe({
72
- next: (res) => {
73
- this.comment.thumbsUpCount = res.data.thumbsUpCount;
74
- this.comment.thumbsDownCount = res.data.thumbsDownCount;
75
- this.comment.like = true;
76
- this.comment.dislike = false;
77
- },
78
- });
79
- }
80
- onThumbsDown() {
81
- this.commentService.commentThumbsDown(this.comment.id).subscribe({
82
- next: (res) => {
83
- this.comment.thumbsUpCount = res.data.thumbsUpCount;
84
- this.comment.thumbsDownCount = res.data.thumbsDownCount;
85
- this.comment.like = false;
86
- this.comment.dislike = true;
87
- },
88
- });
89
- }
90
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CommentItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
91
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: CommentItemComponent, isStandalone: true, selector: "rolatech-comment-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"block w-full\">\n @if (comment) {\n <div class=\"flex group\">\n <div class=\"bg-orange-600 min-w-10 min-h-10 mr-4 h-fit rounded-full\">\n @if (comment.user && comment.user.avatar) {\n <img class=\"w-10 h-10 rounded-full\" [src]=\"comment.user.avatar\" />\n }\n </div>\n <div class=\"flex flex-col w-full\">\n <a class=\"mb-0.5\">\n @if (comment.user) {\n <span class=\"text-md font-semibold mr-1\">&#64;{{ comment.user.username }}</span>\n }\n <span class=\"text-sm opacity-70\">{{ comment.createdAt | time }}</span>\n </a>\n\n <div [innerText]=\"comment.content\"></div>\n <rolatech-comment-action\n (reply)=\"onCommentReply($event)\"\n [data]=\"comment\"\n (thumbsUp)=\"onThumbsUp()\"\n (thumbsDown)=\"onThumbsDown()\"\n ></rolatech-comment-action>\n </div>\n <div class=\"min-w-9\">\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 <div>\n <rolatech-comment-replies\n [total]=\"comment.repliesCount\"\n [commentId]=\"comment.id!\"\n [replies]=\"comment.replies!\"\n (fetch)=\"onFetchReplies($event)\"\n ></rolatech-comment-replies>\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: ["mat-form-field{width:100%}\n"], 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: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "component", type: CommentRepliesComponent, selector: "rolatech-comment-replies", inputs: ["total", "replies", "commentId"], outputs: ["totalChange", "repliesChange", "replied", "fetch"] }, { 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"] }] }); }
92
- }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CommentItemComponent, decorators: [{
94
- type: Component,
95
- args: [{ selector: 'rolatech-comment-item', standalone: true, imports: [
96
- CommonModule,
97
- MatButtonModule,
98
- MatIconModule,
99
- FormsModule,
100
- MatFormFieldModule,
101
- MatInputModule,
102
- CommentRepliesComponent,
103
- CommentActionComponent,
104
- TimePipe,
105
- MatMenuModule,
106
- ], template: "<div class=\"block w-full\">\n @if (comment) {\n <div class=\"flex group\">\n <div class=\"bg-orange-600 min-w-10 min-h-10 mr-4 h-fit rounded-full\">\n @if (comment.user && comment.user.avatar) {\n <img class=\"w-10 h-10 rounded-full\" [src]=\"comment.user.avatar\" />\n }\n </div>\n <div class=\"flex flex-col w-full\">\n <a class=\"mb-0.5\">\n @if (comment.user) {\n <span class=\"text-md font-semibold mr-1\">&#64;{{ comment.user.username }}</span>\n }\n <span class=\"text-sm opacity-70\">{{ comment.createdAt | time }}</span>\n </a>\n\n <div [innerText]=\"comment.content\"></div>\n <rolatech-comment-action\n (reply)=\"onCommentReply($event)\"\n [data]=\"comment\"\n (thumbsUp)=\"onThumbsUp()\"\n (thumbsDown)=\"onThumbsDown()\"\n ></rolatech-comment-action>\n </div>\n <div class=\"min-w-9\">\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 <div>\n <rolatech-comment-replies\n [total]=\"comment.repliesCount\"\n [commentId]=\"comment.id!\"\n [replies]=\"comment.replies!\"\n (fetch)=\"onFetchReplies($event)\"\n ></rolatech-comment-replies>\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: ["mat-form-field{width:100%}\n"] }]
107
- }], ctorParameters: () => [] });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21tZW50L3NyYy9saWIvY29tcG9uZW50cy9jb21tZW50LWl0ZW0vY29tbWVudC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21tZW50L3NyYy9saWIvY29tcG9uZW50cy9jb21tZW50LWl0ZW0vY29tbWVudC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFvQnZELE1BQU0sT0FBTyxvQkFBb0I7SUFNL0I7UUFMQSxtQkFBYyxH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Y0FBYzt3QkFDZCx1QkFBdUI7d0JBQ3ZCLHNCQUFzQjt3QkFDdEIsUUFBUTt3QkFDUixhQUFhO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbW1lbnQsIFJlcGx5IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbWVudFJlcGxpZXNDb21wb25lbnQgfSBmcm9tICcuLi9jb21tZW50LXJlcGxpZXMvY29tbWVudC1yZXBsaWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tZW50QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbWVudC1hY3Rpb24vY29tbWVudC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgVGltZVBpcGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jb21tZW50LWl0ZW0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBDb21tZW50UmVwbGllc0NvbXBvbmVudCxcbiAgICBDb21tZW50QWN0aW9uQ29tcG9uZW50LFxuICAgIFRpbWVQaXBlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tZW50LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY29tbWVudC1pdGVtLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ29tbWVudEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb21tZW50U2VydmljZSA9IGluamVjdChDb21tZW50U2VydmljZSk7XG4gIGl0ZW0gPSBpbnB1dC5yZXF1aXJlZDxDb21tZW50PigpO1xuICBzaG93ID0gZmFsc2U7XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgY29tbWVudCE6IENvbW1lbnQ7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLmNvbW1lbnQgPSB0aGlzLml0ZW0oKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIHRoaXMuY291bnRSZXBsaWVzQnlDb21tZW50SWQodGhpcy5jb21tZW50LmlkISk7XG4gIH1cblxuICBvbkZvY3VzKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3cgPSB0cnVlO1xuICB9XG4gIG9uQ29tbWVudFJlcGx5KGNvbnRlbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBjb250ZW50LFxuICAgIH07XG4gICAgY29uc3QgaWQgPSB0aGlzLmNvbW1lbnQuaWQgYXMgc3RyaW5nO1xuICAgIHRoaXMuY29tbWVudFNlcnZpY2UucmVwbHkoaWQsIGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuY29tbWVudC5yZXBsaWVzQ291bnQrKztcbiAgICAgICAgdGhpcy5jb21tZW50LnJlcGxpZXMgPSB0aGlzLmNvbW1lbnQucmVwbGllcyA/IHRoaXMuY29tbWVudC5yZXBsaWVzIDogW107XG4gICAgICAgIHRoaXMuY29tbWVudC5yZXBsaWVzLnB1c2gocmVzKTtcblxuICAgICAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLm9uQ29tbWVudExvYWRpbmcuZW1pdChmYWxzZSk7XG4gICAgICAgIHRoaXMuY29tbWVudFNlcnZpY2Uub25Db21tZW50UmVwbHkuZW1pdChyZXMpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5jb21tZW50U2VydmljZS5vbkNvbW1lbnRMb2FkaW5nLmVtaXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBjb3VudFJlcGxpZXNCeUNvbW1lbnRJZChjb21tZW50SWQ6IHN0cmluZykge1xuICAgIHRoaXMuY29tbWVudFNlcnZpY2UuY291bnRSZXBsaWVzQnlDb21tZW50SWQoY29tbWVudElkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmNvbW1lbnQucmVwbGllc0NvdW50ID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge30sXG4gICAgfSk7XG4gIH1cbiAgb25GZXRjaFJlcGxpZXMoY29tbWVudElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuY29tbWVudFNlcnZpY2UuZmluZFJlcGxpZXNCeUNvbW1lbnRJZChjb21tZW50SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuY29tbWVudC5yZXBsaWVzID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25UaHVtYnNVcCgpIHtcbiAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLmNvbW1lbnRUaHVtYnNVcCh0aGlzLmNvbW1lbnQuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuY29tbWVudC50aHVtYnNVcENvdW50ID0gcmVzLmRhdGEudGh1bWJzVXBDb3VudDtcbiAgICAgICAgdGhpcy5jb21tZW50LnRodW1ic0Rvd25Db3VudCA9IHJlcy5kYXRhLnRodW1ic0Rvd25Db3VudDtcbiAgICAgICAgdGhpcy5jb21tZW50Lmxpa2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbW1lbnQuZGlzbGlrZSA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvblRodW1ic0Rvd24oKSB7XG4gICAgdGhpcy5jb21tZW50U2VydmljZS5jb21tZW50VGh1bWJzRG93bih0aGlzLmNvbW1lbnQuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuY29tbWVudC50aHVtYnNVcENvdW50ID0gcmVzLmRhdGEudGh1bWJzVXBDb3VudDtcbiAgICAgICAgdGhpcy5jb21tZW50LnRodW1ic0Rvd25Db3VudCA9IHJlcy5kYXRhLnRodW1ic0Rvd25Db3VudDtcbiAgICAgICAgdGhpcy5jb21tZW50Lmxpa2UgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb21tZW50LmRpc2xpa2UgPSB0cnVlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJsb2NrIHctZnVsbFwiPlxuICBAaWYgKGNvbW1lbnQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBncm91cFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImJnLW9yYW5nZS02MDAgbWluLXctMTAgbWluLWgtMTAgbXItNCBoLWZpdCByb3VuZGVkLWZ1bGxcIj5cbiAgICAgICAgQGlmIChjb21tZW50LnVzZXIgJiYgY29tbWVudC51c2VyLmF2YXRhcikge1xuICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwIGgtMTAgcm91bmRlZC1mdWxsXCIgW3NyY109XCJjb21tZW50LnVzZXIuYXZhdGFyXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGxcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJtYi0wLjVcIj5cbiAgICAgICAgICBAaWYgKGNvbW1lbnQudXNlcikge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW1kIGZvbnQtc2VtaWJvbGQgbXItMVwiPiYjNjQ7e3sgY29tbWVudC51c2VyLnVzZXJuYW1lIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gb3BhY2l0eS03MFwiPnt7IGNvbW1lbnQuY3JlYXRlZEF0IHwgdGltZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuXG4gICAgICAgIDxkaXYgW2lubmVyVGV4dF09XCJjb21tZW50LmNvbnRlbnRcIj48L2Rpdj5cbiAgICAgICAgPHJvbGF0ZWNoLWNvbW1lbnQtYWN0aW9uXG4gICAgICAgICAgKHJlcGx5KT1cIm9uQ29tbWVudFJlcGx5KCRldmVudClcIlxuICAgICAgICAgIFtkYXRhXT1cImNvbW1lbnRcIlxuICAgICAgICAgICh0aHVtYnNVcCk9XCJvblRodW1ic1VwKClcIlxuICAgICAgICAgICh0aHVtYnNEb3duKT1cIm9uVGh1bWJzRG93bigpXCJcbiAgICAgICAgPjwvcm9sYXRlY2gtY29tbWVudC1hY3Rpb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaW4tdy05XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImhvdmVyOmJnLVstLXJ0LTEwLXBlcmNlbnQtbGF5ZXJdIHctOSBoLTkgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGdyb3VwLWhvdmVyOnZpc2libGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIm1lbW51Lm1lbnVPcGVuID8gJ3Zpc2libGUnIDogJ2ludmlzaWJsZSdcIlxuICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25NZW51XCJcbiAgICAgICAgICAjbWVtbnU9XCJtYXRNZW51VHJpZ2dlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPHJvbGF0ZWNoLWNvbW1lbnQtcmVwbGllc1xuICAgICAgICBbdG90YWxdPVwiY29tbWVudC5yZXBsaWVzQ291bnRcIlxuICAgICAgICBbY29tbWVudElkXT1cImNvbW1lbnQuaWQhXCJcbiAgICAgICAgW3JlcGxpZXNdPVwiY29tbWVudC5yZXBsaWVzIVwiXG4gICAgICAgIChmZXRjaCk9XCJvbkZldGNoUmVwbGllcygkZXZlbnQpXCJcbiAgICAgID48L3JvbGF0ZWNoLWNvbW1lbnQtcmVwbGllcz5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG48bWF0LW1lbnUgI2FjdGlvbk1lbnU9XCJtYXRNZW51XCI+XG4gIDxidXR0b24gbWF0LW1lbnUtaXRlbT5cbiAgICA8bWF0LWljb24+ZmxhZzwvbWF0LWljb24+XG4gICAgPHNwYW4+5Li+5oqlPC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvbWF0LW1lbnU+XG4iXX0=
@@ -1,41 +0,0 @@
1
- import { Component, inject, input, model, output } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ReplyItemComponent } from '../reply-item/reply-item.component';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import { CommentService } from '../../services';
7
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/material/icon";
10
- import * as i2 from "@angular/material/progress-spinner";
11
- export class CommentRepliesComponent {
12
- constructor() {
13
- this.commentService = inject(CommentService);
14
- this.total = model(0);
15
- this.replies = model([]);
16
- this.commentId = input.required();
17
- this.replied = output();
18
- this.fetch = output();
19
- this.expand = false;
20
- this.loading = false;
21
- this.fetched = false;
22
- }
23
- onFetch() {
24
- this.expand = !this.expand;
25
- if (!this.fetched) {
26
- this.fetched = true;
27
- this.fetch.emit(this.commentId());
28
- }
29
- }
30
- onItemReplied(reply) {
31
- this.total.set(this.total() + 1);
32
- this.replies().push(reply);
33
- }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CommentRepliesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: CommentRepliesComponent, isStandalone: true, selector: "rolatech-comment-replies", inputs: { total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, replies: { classPropertyName: "replies", publicName: "replies", isSignal: true, isRequired: false, transformFunction: null }, commentId: { classPropertyName: "commentId", publicName: "commentId", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { total: "totalChange", replies: "repliesChange", replied: "replied", fetch: "fetch" }, ngImport: i0, template: "<div class=\"block ml-14\">\n @if (total() > 0) {\n <div>\n <button class=\"inline-flex items-center rounded-lg hover:bg-orange-200 py-1 -ml-1\" (click)=\"onFetch()\">\n <mat-icon color=\"primary\">{{ expand ? 'arrow_drop_up' : 'arrow_drop_down' }}</mat-icon>\n <span class=\"mr-2 text-sm text-orange-500\">\u56DE\u590D({{ total() || replies.length }})</span>\n </button>\n <!-- <div class=\"less-button\">\n <button (click)=\"expand = false\">222</button>\n </div> -->\n </div>\n }\n @if (loading) {\n <div class=\"flex items-center justify-center h-20\">\n <mat-spinner diameter=\"32\"></mat-spinner>\n </div>\n }\n\n @if (expand) {\n @for (item of replies(); track $index) {\n <rolatech-reply-item [commentId]=\"commentId()\" [item]=\"item\" (replied)=\"onItemReplied($event)\"></rolatech-reply-item>\n }\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: ReplyItemComponent, selector: "rolatech-reply-item", inputs: ["commentId", "item"], outputs: ["replied"] }] }); }
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CommentRepliesComponent, decorators: [{
38
- type: Component,
39
- args: [{ selector: 'rolatech-comment-replies', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, MatProgressSpinnerModule, ReplyItemComponent], template: "<div class=\"block ml-14\">\n @if (total() > 0) {\n <div>\n <button class=\"inline-flex items-center rounded-lg hover:bg-orange-200 py-1 -ml-1\" (click)=\"onFetch()\">\n <mat-icon color=\"primary\">{{ expand ? 'arrow_drop_up' : 'arrow_drop_down' }}</mat-icon>\n <span class=\"mr-2 text-sm text-orange-500\">\u56DE\u590D({{ total() || replies.length }})</span>\n </button>\n <!-- <div class=\"less-button\">\n <button (click)=\"expand = false\">222</button>\n </div> -->\n </div>\n }\n @if (loading) {\n <div class=\"flex items-center justify-center h-20\">\n <mat-spinner diameter=\"32\"></mat-spinner>\n </div>\n }\n\n @if (expand) {\n @for (item of replies(); track $index) {\n <rolatech-reply-item [commentId]=\"commentId()\" [item]=\"item\" (replied)=\"onItemReplied($event)\"></rolatech-reply-item>\n }\n }\n</div>\n" }]
40
- }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1yZXBsaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21tZW50L3NyYy9saWIvY29tcG9uZW50cy9jb21tZW50LXJlcGxpZXMvY29tbWVudC1yZXBsaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21tZW50L3NyYy9saWIvY29tcG9uZW50cy9jb21tZW50LXJlcGxpZXMvY29tbWVudC1yZXBsaWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQVM5RSxNQUFNLE9BQU8sdUJBQXVCO0lBUHBDO1FBUUUsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsVUFBSyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUN6QixZQUFPLEdBQUcsS0FBSyxDQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFFckMsWUFBTyxHQUFHLE1BQU0sRUFBUyxDQUFDO1FBQzFCLFVBQUssR0FBRyxNQUFNLEVBQVUsQ0FBQztRQUV6QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsS0FBSyxDQUFDO0tBWWpCO0lBWEMsT0FBTztRQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFDRCxhQUFhLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQXRCVSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwwakJDaEJwQyxrNEJBd0JBLHlERFpZLFlBQVksOEJBQUUsZUFBZSw4QkFBRSxhQUFhLG1MQUFFLHdCQUF3QixtT0FBRSxrQkFBa0I7OzJGQUl6Rix1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBtb2RlbCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVwbHlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwbHktaXRlbS9yZXBseS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXBseSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNvbW1lbnQtcmVwbGllcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLCBSZXBseUl0ZW1Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tbWVudC1yZXBsaWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbW1lbnQtcmVwbGllcy5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIENvbW1lbnRSZXBsaWVzQ29tcG9uZW50IHtcbiAgY29tbWVudFNlcnZpY2UgPSBpbmplY3QoQ29tbWVudFNlcnZpY2UpO1xuICB0b3RhbCA9IG1vZGVsPG51bWJlcj4oMCk7XG4gIHJlcGxpZXMgPSBtb2RlbDxSZXBseVtdPihbXSk7XG4gIGNvbW1lbnRJZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICByZXBsaWVkID0gb3V0cHV0PFJlcGx5PigpO1xuICBmZXRjaCA9IG91dHB1dDxzdHJpbmc+KCk7XG5cbiAgZXhwYW5kID0gZmFsc2U7XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgZmV0Y2hlZCA9IGZhbHNlO1xuICBvbkZldGNoKCkge1xuICAgIHRoaXMuZXhwYW5kID0gIXRoaXMuZXhwYW5kO1xuICAgIGlmICghdGhpcy5mZXRjaGVkKSB7XG4gICAgICB0aGlzLmZldGNoZWQgPSB0cnVlO1xuICAgICAgdGhpcy5mZXRjaC5lbWl0KHRoaXMuY29tbWVudElkKCkpO1xuICAgIH1cbiAgfVxuICBvbkl0ZW1SZXBsaWVkKHJlcGx5OiBSZXBseSkge1xuICAgIHRoaXMudG90YWwuc2V0KHRoaXMudG90YWwoKSArIDEpO1xuICAgIHRoaXMucmVwbGllcygpLnB1c2gocmVwbHkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYmxvY2sgbWwtMTRcIj5cbiAgQGlmICh0b3RhbCgpID4gMCkge1xuICAgIDxkaXY+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQtbGcgaG92ZXI6Ymctb3JhbmdlLTIwMCBweS0xIC1tbC0xXCIgKGNsaWNrKT1cIm9uRmV0Y2goKVwiPlxuICAgICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+e3sgZXhwYW5kID8gJ2Fycm93X2Ryb3BfdXAnIDogJ2Fycm93X2Ryb3BfZG93bicgfX08L21hdC1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTIgdGV4dC1zbSB0ZXh0LW9yYW5nZS01MDBcIj7lm57lpI0oe3sgdG90YWwoKSB8fCByZXBsaWVzLmxlbmd0aCB9fSk8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImxlc3MtYnV0dG9uXCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImV4cGFuZCA9IGZhbHNlXCI+MjIyPC9idXR0b24+XG4gICAgICA8L2Rpdj4gLS0+XG4gICAgPC9kaXY+XG4gIH1cbiAgQGlmIChsb2FkaW5nKSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGgtMjBcIj5cbiAgICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjMyXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoZXhwYW5kKSB7XG4gICAgQGZvciAoaXRlbSBvZiByZXBsaWVzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPHJvbGF0ZWNoLXJlcGx5LWl0ZW0gW2NvbW1lbnRJZF09XCJjb21tZW50SWQoKVwiIFtpdGVtXT1cIml0ZW1cIiAocmVwbGllZCk9XCJvbkl0ZW1SZXBsaWVkKCRldmVudClcIj48L3JvbGF0ZWNoLXJlcGx5LWl0ZW0+XG4gICAgfVxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -1,54 +0,0 @@
1
- import { Component, inject, input } from '@angular/core';
2
- import { CommentItemComponent } from '../comment-item/comment-item.component';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { AngularCommonModule } from '@rolatech/angular-common';
5
- import { CommentService } from '../../services';
6
- import { CommentsHeaderComponent } from '../comments-header/comments-header.component';
7
- import { AuthUserService } from '@rolatech/angular-auth';
8
- import * as i0 from "@angular/core";
9
- export class CommentsComponent {
10
- constructor() {
11
- this.commentService = inject(CommentService);
12
- this.authUserService = inject(AuthUserService);
13
- this.itemId = input.required();
14
- this.comments = [];
15
- this.total = 0;
16
- this.show = false;
17
- this.content = '';
18
- }
19
- ngOnChanges(changes) {
20
- const itemId = changes['itemId'].currentValue;
21
- this.find(itemId);
22
- }
23
- find(itemId) {
24
- this.commentService.findCommentsByItemId(itemId).subscribe({
25
- next: (res) => {
26
- this.total = res.meta?.pagination.count;
27
- this.comments = res.data || [];
28
- },
29
- });
30
- }
31
- onComment(content) {
32
- const data = {
33
- itemId: this.itemId(),
34
- content,
35
- };
36
- this.commentService.createComment(data).subscribe({
37
- next: (res) => {
38
- this.comments.unshift(res);
39
- this.commentService.onCommentLoading.emit(false);
40
- this.commentService.onComment.emit(true);
41
- },
42
- error: (error) => {
43
- console.log(error);
44
- },
45
- });
46
- }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CommentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: CommentsComponent, isStandalone: true, selector: "rolatech-comments", inputs: { itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: true, isRequired: true, transformFunction: null } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col gap-3\" id=\"comment\">\n <rolatech-comments-header (comment)=\"onComment($event)\" [total]=\"total\"></rolatech-comments-header>\n @for (item of comments; track $index) {\n <rolatech-comment-item [item]=\"item\"></rolatech-comment-item>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "component", type: CommentItemComponent, selector: "rolatech-comment-item", inputs: ["item"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: CommentsHeaderComponent, selector: "rolatech-comments-header", inputs: ["placeholder", "total"], outputs: ["totalChange", "comment"] }] }); }
49
- }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CommentsComponent, decorators: [{
51
- type: Component,
52
- args: [{ standalone: true, selector: 'rolatech-comments', imports: [AngularCommonModule, CommentItemComponent, MatButtonModule, CommentsHeaderComponent], template: "<div class=\"flex flex-col gap-3\" id=\"comment\">\n <rolatech-comments-header (comment)=\"onComment($event)\" [total]=\"total\"></rolatech-comments-header>\n @for (item of comments; track $index) {\n <rolatech-comment-item [item]=\"item\"></rolatech-comment-item>\n }\n</div>\n" }]
53
- }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvbW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1lbnRzL2NvbW1lbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21tZW50L3NyYy9saWIvY29tcG9uZW50cy9jb21tZW50cy9jb21tZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE0QixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVN6RCxNQUFNLE9BQU8saUJBQWlCO0lBUDlCO1FBUUUsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNsQyxhQUFRLEdBQWMsRUFBRSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsWUFBTyxHQUFHLEVBQUUsQ0FBQztLQTZCZDtJQTVCQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLENBQUMsTUFBYztRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6RCxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDakMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsT0FBWTtRQUNwQixNQUFNLElBQUksR0FBRztZQUNYLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3JCLE9BQU87U0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hELElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQW5DVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix3T0NoQjlCLDhSQU1BLHlERE1ZLG1CQUFtQiwrQkFBRSxvQkFBb0IsbUZBQUUsZUFBZSwrQkFBRSx1QkFBdUI7OzJGQUlsRixpQkFBaUI7a0JBUDdCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLG1CQUFtQixXQUNwQixDQUFDLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tZW50SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1lbnQtaXRlbS9jb21tZW50LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ29tbWVudHNIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21tZW50cy1oZWFkZXIvY29tbWVudHMtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRoVXNlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1hdXRoJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY29tbWVudHMnLFxuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgQ29tbWVudEl0ZW1Db21wb25lbnQsIE1hdEJ1dHRvbk1vZHVsZSwgQ29tbWVudHNIZWFkZXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tbWVudHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY29tbWVudHMuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDb21tZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIGNvbW1lbnRTZXJ2aWNlID0gaW5qZWN0KENvbW1lbnRTZXJ2aWNlKTtcbiAgYXV0aFVzZXJTZXJ2aWNlID0gaW5qZWN0KEF1dGhVc2VyU2VydmljZSk7XG4gIGl0ZW1JZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgY29tbWVudHM6IENvbW1lbnRbXSA9IFtdO1xuICB0b3RhbCA9IDA7XG4gIHNob3cgPSBmYWxzZTtcbiAgY29udGVudCA9ICcnO1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgaXRlbUlkID0gY2hhbmdlc1snaXRlbUlkJ10uY3VycmVudFZhbHVlO1xuICAgIHRoaXMuZmluZChpdGVtSWQpO1xuICB9XG4gIGZpbmQoaXRlbUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLmZpbmRDb21tZW50c0J5SXRlbUlkKGl0ZW1JZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRvdGFsID0gcmVzLm1ldGE/LnBhZ2luYXRpb24uY291bnQ7XG4gICAgICAgIHRoaXMuY29tbWVudHMgPSByZXMuZGF0YSB8fCBbXTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25Db21tZW50KGNvbnRlbnQ6IGFueSkge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBpdGVtSWQ6IHRoaXMuaXRlbUlkKCksXG4gICAgICBjb250ZW50LFxuICAgIH07XG4gICAgdGhpcy5jb21tZW50U2VydmljZS5jcmVhdGVDb21tZW50KGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuY29tbWVudHMudW5zaGlmdChyZXMpO1xuICAgICAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLm9uQ29tbWVudExvYWRpbmcuZW1pdChmYWxzZSk7XG4gICAgICAgIHRoaXMuY29tbWVudFNlcnZpY2Uub25Db21tZW50LmVtaXQodHJ1ZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiIGlkPVwiY29tbWVudFwiPlxuICA8cm9sYXRlY2gtY29tbWVudHMtaGVhZGVyIChjb21tZW50KT1cIm9uQ29tbWVudCgkZXZlbnQpXCIgW3RvdGFsXT1cInRvdGFsXCI+PC9yb2xhdGVjaC1jb21tZW50cy1oZWFkZXI+XG4gIEBmb3IgKGl0ZW0gb2YgY29tbWVudHM7IHRyYWNrICRpbmRleCkge1xuICAgIDxyb2xhdGVjaC1jb21tZW50LWl0ZW0gW2l0ZW1dPVwiaXRlbVwiPjwvcm9sYXRlY2gtY29tbWVudC1pdGVtPlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -1,72 +0,0 @@
1
- import { Component, inject, input, model, output } from '@angular/core';
2
- import { MatButtonModule } from '@angular/material/button';
3
- import { AngularCommonModule } from '@rolatech/angular-common';
4
- import { CommentActionComponent } from '../comment-action/comment-action.component';
5
- import { CommentItemComponent } from '../comment-item/comment-item.component';
6
- import { CommentService } from '../../services';
7
- import { MatIconModule } from '@angular/material/icon';
8
- import { MatMenuModule } from '@angular/material/menu';
9
- import { MatFormFieldModule } from '@angular/material/form-field';
10
- import { MatInputModule } from '@angular/material/input';
11
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/forms";
14
- import * as i2 from "@angular/material/button";
15
- import * as i3 from "@angular/material/icon";
16
- import * as i4 from "@angular/material/menu";
17
- import * as i5 from "@angular/material/form-field";
18
- import * as i6 from "@angular/material/input";
19
- import * as i7 from "@angular/cdk/text-field";
20
- import * as i8 from "@angular/material/progress-spinner";
21
- export class CommentsHeaderComponent {
22
- constructor() {
23
- this.commentService = inject(CommentService);
24
- this.placeholder = input('请输入评论内容');
25
- this.total = model(0);
26
- this.comment = output();
27
- this.content = '';
28
- this.show = false;
29
- this.loading = false;
30
- }
31
- ngOnInit() {
32
- this.commentService.onComment.subscribe((res) => {
33
- // this.total++;
34
- this.total.set(this.total() + 1);
35
- });
36
- }
37
- onFocus(event) {
38
- this.show = true;
39
- }
40
- onCancel() {
41
- this.show = false;
42
- this.content = '';
43
- }
44
- onComment() {
45
- this.loading = true;
46
- this.comment.emit(this.content);
47
- this.commentService.onCommentLoading.subscribe((res) => {
48
- this.loading = res;
49
- this.show = false;
50
- this.content = '';
51
- });
52
- }
53
- fetchByComments() { }
54
- fetchByReplies() { }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CommentsHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: CommentsHeaderComponent, isStandalone: true, selector: "rolatech-comments-header", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { total: "totalChange", comment: "comment" }, ngImport: i0, template: "<div class=\"my-2\">\n <div class=\"flex items-center gap-3 py-2\">\n <span class=\"text-lg font-bold\">\u8BC4\u8BBA({{ total() }})</span>\n <button mat-button [matMenuTriggerFor]=\"menu\">\n <mat-icon>sort</mat-icon>\n <span>\u6392\u5E8F</span>\n </button>\n </div>\n\n @if (loading) {\n <div class=\"flex items-center justify-center h-20\">\n <mat-spinner diameter=\"32\"></mat-spinner>\n </div>\n } @else {\n <div class=\"mr-3\">\n <mat-form-field>\n <textarea\n matInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n cdkAutosizeMaxRows=\"8\"\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"content\"\n (focus)=\"onFocus($event)\"\n ></textarea>\n </mat-form-field>\n @if (show) {\n <div class=\"flex justify-end items-center gap-2 pr-2\">\n <button mat-button class=\"max-h-9\" (click)=\"onCancel()\">\u53D6\u6D88</button>\n <button mat-flat-button color=\"primary\" class=\"max-h-9\" (click)=\"onComment()\">\u8BC4\u8BBA</button>\n </div>\n }\n </div>\n }\n</div>\n<mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"fetchByReplies()\">\u6700\u591A\u56DE\u590D</button>\n <button mat-menu-item (click)=\"fetchByComments()\">\u6700\u65B0\u8BC4\u8BBA</button>\n</mat-menu>\n", styles: ["mat-form-field{width:100%}textarea:focus{outline:none;box-shadow:none}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.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: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i7.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
57
- }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CommentsHeaderComponent, decorators: [{
59
- type: Component,
60
- args: [{ selector: 'rolatech-comments-header', standalone: true, imports: [
61
- AngularCommonModule,
62
- CommentItemComponent,
63
- MatButtonModule,
64
- MatIconModule,
65
- MatMenuModule,
66
- MatFormFieldModule,
67
- MatInputModule,
68
- CommentActionComponent,
69
- MatProgressSpinnerModule,
70
- ], template: "<div class=\"my-2\">\n <div class=\"flex items-center gap-3 py-2\">\n <span class=\"text-lg font-bold\">\u8BC4\u8BBA({{ total() }})</span>\n <button mat-button [matMenuTriggerFor]=\"menu\">\n <mat-icon>sort</mat-icon>\n <span>\u6392\u5E8F</span>\n </button>\n </div>\n\n @if (loading) {\n <div class=\"flex items-center justify-center h-20\">\n <mat-spinner diameter=\"32\"></mat-spinner>\n </div>\n } @else {\n <div class=\"mr-3\">\n <mat-form-field>\n <textarea\n matInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n cdkAutosizeMaxRows=\"8\"\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"content\"\n (focus)=\"onFocus($event)\"\n ></textarea>\n </mat-form-field>\n @if (show) {\n <div class=\"flex justify-end items-center gap-2 pr-2\">\n <button mat-button class=\"max-h-9\" (click)=\"onCancel()\">\u53D6\u6D88</button>\n <button mat-flat-button color=\"primary\" class=\"max-h-9\" (click)=\"onComment()\">\u8BC4\u8BBA</button>\n </div>\n }\n </div>\n }\n</div>\n<mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"fetchByReplies()\">\u6700\u591A\u56DE\u590D</button>\n <button mat-menu-item (click)=\"fetchByComments()\">\u6700\u65B0\u8BC4\u8BBA</button>\n</mat-menu>\n", styles: ["mat-form-field{width:100%}textarea:focus{outline:none;box-shadow:none}\n"] }]
71
- }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21tZW50L3NyYy9saWIvY29tcG9uZW50cy9jb21tZW50cy1oZWFkZXIvY29tbWVudHMtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21tZW50L3NyYy9saWIvY29tcG9uZW50cy9jb21tZW50cy1oZWFkZXIvY29tbWVudHMtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7QUFtQjlFLE1BQU0sT0FBTyx1QkFBdUI7SUFqQnBDO1FBa0JFLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsS0FBSyxDQUFTLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLFVBQUssR0FBRyxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDekIsWUFBTyxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBQzNCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsWUFBTyxHQUFHLEtBQUssQ0FBQztLQXlCakI7SUF4QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzlDLGdCQUFnQjtZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWUsS0FBSSxDQUFDO0lBQ3BCLGNBQWMsS0FBSSxDQUFDOzhHQS9CUix1QkFBdUI7a0dBQXZCLHVCQUF1Qix5WkM3QnBDLHM0Q0F3Q0EsaUlEeEJJLG1CQUFtQiw4bUJBRW5CLGVBQWUsMk5BQ2YsYUFBYSxtTEFDYixhQUFhLDZ2QkFDYixrQkFBa0IseU9BQ2xCLGNBQWMseWtCQUVkLHdCQUF3Qjs7MkZBS2YsdUJBQXVCO2tCQWpCbkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2Qsc0JBQXNCO3dCQUN0Qix3QkFBd0I7cUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IENvbW1lbnRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9jb21tZW50LWFjdGlvbi9jb21tZW50LWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbWVudEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9jb21tZW50LWl0ZW0vY29tbWVudC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY29tbWVudHMtaGVhZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFuZ3VsYXJDb21tb25Nb2R1bGUsXG4gICAgQ29tbWVudEl0ZW1Db21wb25lbnQsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgQ29tbWVudEFjdGlvbkNvbXBvbmVudCxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tZW50cy1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY29tbWVudHMtaGVhZGVyLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ29tbWVudHNIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb21tZW50U2VydmljZSA9IGluamVjdChDb21tZW50U2VydmljZSk7XG4gIHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPign6K+36L6T5YWl6K+E6K665YaF5a65Jyk7XG4gIHRvdGFsID0gbW9kZWw8bnVtYmVyPigwKTtcbiAgY29tbWVudCA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIGNvbnRlbnQgPSAnJztcbiAgc2hvdyA9IGZhbHNlO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29tbWVudFNlcnZpY2Uub25Db21tZW50LnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAvLyB0aGlzLnRvdGFsKys7XG4gICAgICB0aGlzLnRvdGFsLnNldCh0aGlzLnRvdGFsKCkgKyAxKTtcbiAgICB9KTtcbiAgfVxuICBvbkZvY3VzKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3cgPSB0cnVlO1xuICB9XG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuY29udGVudCA9ICcnO1xuICB9XG4gIG9uQ29tbWVudCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuY29tbWVudC5lbWl0KHRoaXMuY29udGVudCk7XG4gICAgdGhpcy5jb21tZW50U2VydmljZS5vbkNvbW1lbnRMb2FkaW5nLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSByZXM7XG4gICAgICB0aGlzLnNob3cgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udGVudCA9ICcnO1xuICAgIH0pO1xuICB9XG4gIGZldGNoQnlDb21tZW50cygpIHt9XG4gIGZldGNoQnlSZXBsaWVzKCkge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJteS0yXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBweS0yXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZFwiPuivhOiuuih7eyB0b3RhbCgpIH19KTwvc3Bhbj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cbiAgICAgIDxtYXQtaWNvbj5zb3J0PC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuPuaOkuW6jzwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgQGlmIChsb2FkaW5nKSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGgtMjBcIj5cbiAgICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjMyXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cIm1yLTNcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBjZGtUZXh0YXJlYUF1dG9zaXplXG4gICAgICAgICAgI2F1dG9zaXplPVwiY2RrVGV4dGFyZWFBdXRvc2l6ZVwiXG4gICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiMVwiXG4gICAgICAgICAgY2RrQXV0b3NpemVNYXhSb3dzPVwiOFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29udGVudFwiXG4gICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgID48L3RleHRhcmVhPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIEBpZiAoc2hvdykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBpdGVtcy1jZW50ZXIgZ2FwLTIgcHItMlwiPlxuICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIm1heC1oLTlcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPuWPlua2iDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwibWF4LWgtOVwiIChjbGljayk9XCJvbkNvbW1lbnQoKVwiPuivhOiuujwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZmV0Y2hCeVJlcGxpZXMoKVwiPuacgOWkmuWbnuWkjTwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImZldGNoQnlDb21tZW50cygpXCI+5pyA5paw6K+E6K66PC9idXR0b24+XG48L21hdC1tZW51PlxuIl19
@@ -1,5 +0,0 @@
1
- export { CommentsComponent } from './comments/comments.component';
2
- export { CommentRepliesComponent } from './comment-replies/comment-replies.component';
3
- export { CommentItemComponent } from './comment-item/comment-item.component';
4
- export { ReplyItemComponent } from './reply-item/reply-item.component';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tbWVudC9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDb21tZW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudHMvY29tbWVudHMuY29tcG9uZW50JztcbmV4cG9ydCB7IENvbW1lbnRSZXBsaWVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50LXJlcGxpZXMvY29tbWVudC1yZXBsaWVzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDb21tZW50SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudC1pdGVtL2NvbW1lbnQtaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0IHsgUmVwbHlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9yZXBseS1pdGVtL3JlcGx5LWl0ZW0uY29tcG9uZW50JztcbiJdfQ==
@@ -1,67 +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
- console.log(error);
37
- },
38
- });
39
- }
40
- onThumbsUp() {
41
- this.commentService.replyThumbsUp(this.reply.id).subscribe({
42
- next: (res) => {
43
- this.reply.thumbsUpCount = res.data.thumbsUpCount;
44
- this.reply.thumbsDownCount = res.data.thumbsDownCount;
45
- this.reply.like = true;
46
- this.reply.dislike = false;
47
- },
48
- });
49
- }
50
- onThumbsDown() {
51
- this.commentService.replyThumbsDown(this.reply.id).subscribe({
52
- next: (res) => {
53
- this.reply.thumbsUpCount = res.data.thumbsUpCount;
54
- this.reply.thumbsDownCount = res.data.thumbsDownCount;
55
- this.reply.like = false;
56
- this.reply.dislike = true;
57
- },
58
- });
59
- }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ReplyItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", 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-orange-600 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"] }] }); }
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ReplyItemComponent, decorators: [{
64
- type: Component,
65
- 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-orange-600 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" }]
66
- }], ctorParameters: () => [] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbHktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tbWVudC9zcmMvbGliL2NvbXBvbmVudHMvcmVwbHktaXRlbS9yZXBseS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21tZW50L3NyYy9saWIvY29tcG9uZW50cy9yZXBseS1pdGVtL3JlcGx5LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBUXZELE1BQU0sT0FBTyxrQkFBa0I7SUFNN0I7UUFMQSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxjQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ3JDLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFTLENBQUM7UUFDL0IsWUFBTyxHQUFHLE1BQU0sRUFBUyxDQUFDO1FBUTFCLFNBQUksR0FBRyxLQUFLLENBQUM7UUFMWCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsT0FBTyxDQUFDLE9BQWU7UUFDckIsTUFBTSxJQUFJLEdBQUc7WUFDWCxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE9BQU87U0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxRCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqRCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pELElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDN0IsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDM0QsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUM1QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FoRFUsa0JBQWtCO2tHQUFsQixrQkFBa0IsbVhDaEIvQiwyOUNBMENBLHlERDlCWSxZQUFZLDRIQUFFLGVBQWUsOEJBQUUsYUFBYSxvTEFBRSxzQkFBc0IsOElBQUUsUUFBUSw0Q0FBRSxhQUFhOzsyRkFJNUYsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlcGx5IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQ29tbWVudEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1lbnQtYWN0aW9uL2NvbW1lbnQtYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFRpbWVQaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXJlcGx5LWl0ZW0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIENvbW1lbnRBY3Rpb25Db21wb25lbnQsIFRpbWVQaXBlLCBNYXRNZW51TW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcGx5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcmVwbHktaXRlbS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFJlcGx5SXRlbUNvbXBvbmVudCB7XG4gIGNvbW1lbnRTZXJ2aWNlID0gaW5qZWN0KENvbW1lbnRTZXJ2aWNlKTtcbiAgY29tbWVudElkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBpdGVtID0gaW5wdXQucmVxdWlyZWQ8UmVwbHk+KCk7XG4gIHJlcGxpZWQgPSBvdXRwdXQ8UmVwbHk+KCk7XG4gIHJlcGx5ITogUmVwbHk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLnJlcGx5ID0gdGhpcy5pdGVtKCk7XG4gICAgfSk7XG4gIH1cblxuICBzaG93ID0gZmFsc2U7XG4gIG9uUmVwbHkoY29udGVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIHJlcGx5SWQ6IHRoaXMucmVwbHkuaWQsXG4gICAgICBjb250ZW50LFxuICAgIH07XG4gICAgdGhpcy5jb21tZW50U2VydmljZS5yZXBseSh0aGlzLmNvbW1lbnRJZCgpLCBkYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLm9uQ29tbWVudExvYWRpbmcuZW1pdChmYWxzZSk7XG4gICAgICAgIHRoaXMucmVwbGllZC5lbWl0KHJlcyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLm9uQ29tbWVudExvYWRpbmcuZW1pdChmYWxzZSk7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25UaHVtYnNVcCgpIHtcbiAgICB0aGlzLmNvbW1lbnRTZXJ2aWNlLnJlcGx5VGh1bWJzVXAodGhpcy5yZXBseS5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5yZXBseS50aHVtYnNVcENvdW50ID0gcmVzLmRhdGEudGh1bWJzVXBDb3VudDtcbiAgICAgICAgdGhpcy5yZXBseS50aHVtYnNEb3duQ291bnQgPSByZXMuZGF0YS50aHVtYnNEb3duQ291bnQ7XG4gICAgICAgIHRoaXMucmVwbHkubGlrZSA9IHRydWU7XG4gICAgICAgIHRoaXMucmVwbHkuZGlzbGlrZSA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvblRodW1ic0Rvd24oKSB7XG4gICAgdGhpcy5jb21tZW50U2VydmljZS5yZXBseVRodW1ic0Rvd24odGhpcy5yZXBseS5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5yZXBseS50aHVtYnNVcENvdW50ID0gcmVzLmRhdGEudGh1bWJzVXBDb3VudDtcbiAgICAgICAgdGhpcy5yZXBseS50aHVtYnNEb3duQ291bnQgPSByZXMuZGF0YS50aHVtYnNEb3duQ291bnQ7XG4gICAgICAgIHRoaXMucmVwbHkubGlrZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlcGx5LmRpc2xpa2UgPSB0cnVlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJsb2NrIHctZnVsbFwiPlxuICBAaWYgKHJlcGx5KSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZ3JvdXBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJiZy1vcmFuZ2UtNjAwIG1pbi13LVsyOHB4XSBtaW4taC1bMjhweF0gaC1maXQgbXItMyByb3VuZGVkLWZ1bGxcIj5cbiAgICAgICAgQGlmIChyZXBseS51c2VyICYmIHJlcGx5LnVzZXIuYXZhdGFyKSB7XG4gICAgICAgICAgPGltZyBjbGFzcz1cInctNyBoLTcgcm91bmRlZC1mdWxsXCIgW3NyY109XCJyZXBseS51c2VyLmF2YXRhclwiIC8+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