{"version":3,"file":"ng-nest-ui-comment.mjs","sources":["../../../../lib/ng-nest/ui/comment/comment.property.ts","../../../../lib/ng-nest/ui/comment/comment-reply.component.ts","../../../../lib/ng-nest/ui/comment/comment-reply.component.html","../../../../lib/ng-nest/ui/comment/comment.component.ts","../../../../lib/ng-nest/ui/comment/comment.component.html","../../../../lib/ng-nest/ui/comment/comment.module.ts","../../../../lib/ng-nest/ui/comment/ng-nest-ui-comment.ts"],"sourcesContent":["import { XPropertyFunction, XToDataArray, XToNumber } from '@ng-nest/ui/core';\r\nimport { Component, input, output } from '@angular/core';\r\nimport type { XDate, XParentIdentityProperty, XNumber, XDataArray } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Comment\r\n * @selector x-comment\r\n * @decorator component\r\n */\r\nexport const XCommentPrefix = 'x-comment';\r\nconst X_COMMENT_CONFIG_NAME = 'comment';\r\n\r\n/**\r\n * Comment Property\r\n */\r\n@Component({ selector: `${XCommentPrefix}-property`, template: '' })\r\nexport class XCommentProperty extends XPropertyFunction(X_COMMENT_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 评论数据\r\n   * @en_US Comment data\r\n   */\r\n  readonly data = input<XCommentNode[], XDataArray<XCommentNode>>([], { transform: XToDataArray });\r\n  /**\r\n   * @zh_CN 评论最大字数\r\n   * @en_US Maximum number of comments\r\n   */\r\n  readonly contentMax = input<number, XNumber>(this.config?.contentMax ?? 512, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 点赞的事件\r\n   * @en_US Like events\r\n   */\r\n  readonly likeClick = output<XCommentNode>();\r\n  /**\r\n   * @zh_CN 评论的事件\r\n   * @en_US Commented event\r\n   */\r\n  readonly commentClick = output<XCommentNode>();\r\n  /**\r\n   * @zh_CN 回复的事件\r\n   * @en_US Reply event\r\n   */\r\n  readonly replyClick = output<XCommentNode>();\r\n  /**\r\n   * @zh_CN 确认提交的事件\r\n   * @en_US Confirm the submitted event\r\n   */\r\n  readonly sureClick = output<XCommentNode>();\r\n  /**\r\n   * @zh_CN 更多的事件\r\n   * @en_US More events\r\n   */\r\n  readonly moreClick = output<XCommentNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Comment 数据对象\r\n * @en_US Comment data object\r\n */\r\nexport interface XCommentNode extends XParentIdentityProperty<XCommentNode> {\r\n  /**\r\n   * @zh_CN 作者\r\n   * @en_US Author\r\n   */\r\n  author?: string;\r\n  /**\r\n   * @zh_CN 作者头像地址\r\n   * @en_US Author avatar address\r\n   */\r\n  src?: string;\r\n  /**\r\n   * @zh_CN 发布时间\r\n   * @en_US release time\r\n   */\r\n  datetime?: XDate;\r\n  /**\r\n   * @zh_CN 发布内容\r\n   * @en_US Publish content\r\n   */\r\n  content?: string;\r\n  /**\r\n   * @zh_CN 点赞数量\r\n   * @en_US Like number\r\n   */\r\n  likes?: number;\r\n  /**\r\n   * @zh_CN 评论数量\r\n   * @en_US Number of comments\r\n   */\r\n  count?: number;\r\n  /**\r\n   * @zh_CN 回复作者\r\n   * @en_US Reply to author\r\n   */\r\n  replyAuthor?: string;\r\n  /**\r\n   * @zh_CN 点击评论/回复提交的内容\r\n   * @en_US Click to comment/reply to submitted content\r\n   */\r\n  replyContent?: string;\r\n  /**\r\n   * @zh_CN 显示评论/回复框\r\n   * @en_US Show comment/reply box\r\n   */\r\n  commentShow?: boolean;\r\n}\r\n\r\n/**\r\n * Comment Reply\r\n * @selector x-comment-reply\r\n * @decorator component\r\n */\r\nexport const XCommentReplyPrefix = 'x-comment-reply';\r\n\r\n/**\r\n * Comment Reply Property\r\n */\r\n@Component({ selector: `${XCommentReplyPrefix}-property`, template: '' })\r\nexport class XCommentReplyProperty extends XPropertyFunction(X_COMMENT_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 回复的最大字数\r\n   * @en_US Maximum number of words to reply\r\n   */\r\n  readonly maxlength = input<number, XNumber>(this.config?.maxlength ?? 512, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 回复确认的事件\r\n   * @en_US Reply to confirmed event\r\n   */\r\n  readonly sureClick = output<string>();\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, signal } from '@angular/core';\r\nimport { XCommentReplyPrefix, XCommentReplyProperty } from './comment.property';\r\nimport { XI18nPipe } from '@ng-nest/ui/i18n';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: `${XCommentReplyPrefix}`,\r\n  imports: [FormsModule, XInputComponent, XI18nPipe, XButtonComponent],\r\n  templateUrl: './comment-reply.component.html',\r\n  styleUrls: ['./comment-reply.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCommentReplyComponent extends XCommentReplyProperty {\r\n  inputValue = signal<string>('');\r\n\r\n  sureOnClick() {\r\n    this.sureClick.emit(this.inputValue());\r\n  }\r\n}\r\n","<div #commentReply class=\"x-comment-reply\">\r\n  <x-input\r\n    class=\"x-comment-reply-input\"\r\n    [placeholder]=\"'comment.placeholder' | xI18n\"\r\n    [maxlength]=\"maxlength()\"\r\n    [(ngModel)]=\"inputValue\"\r\n  ></x-input>\r\n  <div class=\"x-comment-reply-buttons\">\r\n    <x-button class=\"x-comment-sure-button\" type=\"primary\" flat (click)=\"sureOnClick()\">{{\r\n      'comment.sure' | xI18n\r\n    }}</x-button>\r\n  </div>\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, computed } from '@angular/core';\r\nimport { XCommentPrefix, XCommentProperty } from './comment.property';\r\nimport { XIsEmpty } from '@ng-nest/ui/core';\r\nimport { XI18nPipe } from '@ng-nest/ui/i18n';\r\nimport { XAvatarComponent } from '@ng-nest/ui/avatar';\r\nimport { XButtonComponent, XButtonsComponent } from '@ng-nest/ui/button';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XTextRetractComponent } from '@ng-nest/ui/text-retract';\r\nimport { XTimeAgoPipe } from '@ng-nest/ui/time-ago';\r\nimport { XCommentReplyComponent } from './comment-reply.component';\r\nimport type { XCommentNode } from './comment.property';\r\n\r\n@Component({\r\n  selector: `${XCommentPrefix}`,\r\n  imports: [\r\n    XI18nPipe,\r\n    XLinkComponent,\r\n    XAvatarComponent,\r\n    XButtonComponent,\r\n    XButtonsComponent,\r\n    XTextRetractComponent,\r\n    XTimeAgoPipe,\r\n    XCommentReplyComponent\r\n  ],\r\n  templateUrl: './comment.component.html',\r\n  styleUrls: ['./comment.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCommentComponent extends XCommentProperty {\r\n  nodes = computed(() => this.data().filter((dt) => XIsEmpty(dt.pid)));\r\n\r\n  likeOnClick(node: XCommentNode) {\r\n    this.likeClick.emit(node);\r\n  }\r\n\r\n  commentOnClick(node: XCommentNode) {\r\n    node.commentShow = !node.commentShow;\r\n    this.commentClick.emit(node);\r\n  }\r\n\r\n  replyOnClick(node: XCommentNode) {\r\n    node.commentShow = !node.commentShow;\r\n    this.replyClick.emit(node);\r\n  }\r\n\r\n  sureOnClick(content: string, node: XCommentNode) {\r\n    node.replyContent = content;\r\n    this.sureClick.emit(node);\r\n  }\r\n\r\n  moreOnClick(node: XCommentNode) {\r\n    this.moreClick.emit(node);\r\n  }\r\n\r\n  hasMore(node: XCommentNode) {\r\n    return (node.count as number) > (node.children?.length as number);\r\n  }\r\n}\r\n","<div #comment class=\"x-comment\">\r\n  <div class=\"x-comment-list\">\r\n    @for (node of nodes(); track node.id) {\r\n      <div class=\"x-comment-item\">\r\n        <div class=\"x-comment-avatar\">\r\n          <x-avatar [src]=\"node.src\"></x-avatar>\r\n        </div>\r\n        <div class=\"x-comment-content\">\r\n          <div class=\"x-comment-author\">\r\n            <x-link>{{ node.author }}</x-link>\r\n            <span class=\"x-comment-time\">{{ node.datetime | xTimeAgo }}</span>\r\n          </div>\r\n          <div>\r\n            <x-text-retract [content]=\"node.content\"></x-text-retract>\r\n          </div>\r\n          <div class=\"x-comment-action\">\r\n            <x-buttons boxShadow=\"false\">\r\n              <x-button\r\n                class=\"x-comment-button\"\r\n                icon=\"fto-message-square\"\r\n                [activated]=\"node.commentShow!\"\r\n                (click)=\"commentOnClick(node)\"\r\n                text\r\n              >\r\n                {{ 'comment.comments' | xI18n }} {{ node.count ? node.count : '' }}\r\n              </x-button>\r\n              <x-button class=\"x-comment-like\" icon=\"fto-thumbs-up\" (click)=\"likeOnClick(node)\" text>\r\n                {{ 'comment.giveALike' | xI18n }} {{ node.likes ? node.likes : '' }}\r\n              </x-button>\r\n            </x-buttons>\r\n          </div>\r\n          @if (node.commentShow) {\r\n            <x-comment-reply [maxlength]=\"contentMax()\" (sureClick)=\"sureOnClick($event, node)\"></x-comment-reply>\r\n          }\r\n          <ul>\r\n            @for (child of node.children; track child.id) {\r\n              <li>\r\n                <div>\r\n                  <div>\r\n                    <x-link>{{ child.author }}</x-link>\r\n                    @if (child.replyAuthor) {\r\n                      <span class=\"x-comment-reply\">{{ 'comment.reply' | xI18n }}</span>\r\n                      <x-link>{{ child.replyAuthor }}</x-link>\r\n                    }\r\n                    ：\r\n                    <span>\r\n                      <x-text-retract [content]=\"child.content\"></x-text-retract>\r\n                    </span>\r\n                  </div>\r\n                  <div class=\"x-comment-action\">\r\n                    <span class=\"x-comment-time\">{{ child.datetime | xTimeAgo }}</span>\r\n                    <x-buttons boxShadow=\"false\">\r\n                      <x-button\r\n                        class=\"x-comment-reply-button\"\r\n                        icon=\"fto-message-square\"\r\n                        [activated]=\"child.commentShow!\"\r\n                        (click)=\"replyOnClick(child)\"\r\n                        text\r\n                        >{{ 'comment.reply' | xI18n }}</x-button\r\n                      >\r\n                      <x-button class=\"x-comment-like\" icon=\"fto-thumbs-up\" (click)=\"likeOnClick(child)\" text>\r\n                        {{ 'comment.giveALike' | xI18n }} {{ child.likes ? child.likes : '' }}</x-button\r\n                      >\r\n                    </x-buttons>\r\n                  </div>\r\n                  @if (child.commentShow) {\r\n                    <x-comment-reply\r\n                      [maxlength]=\"contentMax()\"\r\n                      (sureClick)=\"sureOnClick($event, child)\"\r\n                    ></x-comment-reply>\r\n                  }\r\n                </div>\r\n              </li>\r\n            }\r\n            @if (hasMore(node)) {\r\n              <li class=\"x-comment-more\">\r\n                <x-link\r\n                  class=\"x-comment-more-button\"\r\n                  icon=\"fto-chevron-right\"\r\n                  type=\"primary\"\r\n                  (click)=\"moreOnClick(node)\"\r\n                  iconRight\r\n                  >{{ 'comment.more' | xI18n }}\r\n                </x-link>\r\n              </li>\r\n            }\r\n          </ul>\r\n        </div>\r\n      </div>\r\n    }\r\n  </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XCommentComponent } from './comment.component';\r\nimport { XCommentReplyComponent } from './comment-reply.component';\r\n\r\n@NgModule({\r\n  exports: [XCommentComponent, XCommentReplyComponent],\r\n  imports: [XCommentComponent, XCommentReplyComponent]\r\n})\r\nexport class XCommentModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}